You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Logic Apps如何一次性发送多附件邮件?解决重复发送问题

解决Azure Logic Apps按附件数量重复发送邮件的问题

问题原因

从你的工作流截图来看,应该是**「发送邮件」动作处于Blob遍历循环内部,或者直接在附件字段绑定了Blob列表数组**——Logic Apps会默认对数组里的每个元素触发一次发送动作,导致每一个附件对应一封邮件。

快速解决方案

按以下步骤调整工作流,就能一次性发送包含所有附件的单封邮件:

  1. 初始化数组变量
    在工作流最开头添加「初始化变量」动作:

    • 变量类型选数组
    • 名称设为allAttachments(自定义名称也可以)
  2. 遍历Blob并收集附件信息

    • 先执行「列出Blob」动作,获取目标存储容器里的所有文件。
    • 添加「针对每个」循环,循环对象选择「列出Blob」返回的value数组。
    • 在循环内部,执行「获取Blob内容」动作,选择当前循环的Blob项。
    • 再添加「追加到数组变量」动作,把当前Blob的信息按格式追加到allAttachments:
      {
        "Name": "@items('针对每个')?['Name']",
        "ContentBytes": "@body('获取_Blob_内容')?['$content']"
      }
      
  3. 循环外发送邮件
    把「发送邮件」动作拖到「针对每个」循环的外面,在邮件的「附件」字段直接选择刚才创建的allAttachments变量即可。

简化写法(无需循环)

如果你的「列出Blob」动作已经开启了返回内容的选项(能拿到ContentBytes),可以直接用表达式构造附件数组,省去循环步骤:
在「发送邮件」的附件字段输入以下表达式:

@select(body('List_blobs')?['value'], (item) => {
  "Name": item?['Name'],
  "ContentBytes": item?['ContentBytes']
})

这样就能确保只发送一封包含所有附件的邮件,不会出现重复发送的情况。

内容的提问来源于stack exchange,提问作者Nunotrt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 19:51:53