如何在Logic App中从Microsoft 365 Defender邮件提取感染文件名
从Microsoft 365 Defender通知邮件中提取受感染文件名(Logic App实现)
实现步骤:
配置邮件触发器
- 添加「收到新邮件(V3)」触发器,关联接收Defender通知的邮箱账户,可设置主题筛选条件(比如包含“Microsoft 365 Defender 警报”)减少无效触发。
添加文件名提取动作
- 添加「Compose」动作,在输入框中使用Logic App表达式提取单引号内的文件名。假设邮件正文预览(
bodyPreview字段)格式类似事件名称: '受感染文件名.exe',表达式如下:first(matches(body('收到新邮件(V3)')?['bodyPreview'], '''([^'']+)'''))[1] - 表达式说明:
body('收到新邮件(V3)')?['bodyPreview']:获取邮件正文预览内容'''([^'']+)''':正则表达式,匹配单引号包裹的内容(两个单引号是Logic App里的转义写法)first(matches(...))[1]:取第一个匹配结果的捕获组,即单引号内的文件名
- 添加「Compose」动作,在输入框中使用Logic App表达式提取单引号内的文件名。假设邮件正文预览(
适配不同邮件格式
- 如果Defender邮件正文预览的事件描述有差异(比如
检测到恶意软件:'test.exe'),需调整正则表达式。例如改为:first(matches(body('收到新邮件(V3)')?['bodyPreview'], '检测到恶意软件:''([^'']+)'''))[1]
- 如果Defender邮件正文预览的事件描述有差异(比如
测试验证
- 触发Logic App(可手动发送测试邮件或等待真实Defender通知),查看「Compose」动作的输出,确认是否正确提取目标文件名。
内容的提问来源于stack exchange,提问作者gaurav sharma
相关产品推荐
相关产品推荐

