如何在Azure Logic Apps中将Blob内的.txt文件作为邮件附件发送
Logic App 实现每日动态命名Blob作为邮件附件发送的解决方案
核心逻辑是先动态构造当日的Blob文件名,读取Blob内容后直接传入邮件动作的附件配置项即可,具体操作步骤如下:
步骤1:构造当日目标Blob的动态文件名
你需要生成和规则abc_yyyyMMdd.txt完全匹配的文件名,直接在Logic App的表达式栏输入以下代码即可:
- 默认UTC时间生成:
concat('abc_', formatDateTime(utcNow(), 'yyyyMMdd'), '.txt') - 如需适配东八区(北京时间),使用该表达式:
concat('abc_', formatDateTime(convertTimeZone(utcNow(), 'UTC', 'China Standard Time'), 'yyyyMMdd'), '.txt')
步骤2:添加读取Blob内容的动作
在已配置的「发送邮件」动作之前,新增Azure Blob Storage连接器下的Get blob content (V2) 动作,按以下要求配置参数:
- 存储账号选择你的
storageacct对应实例 - 容器选择
ABCcontainer - Blob名称填写步骤1生成的动态文件名表达式
- 保持「Infer content type」选项为开启状态,平台会自动识别文件类型
步骤3:配置邮件动作的附件项
打开你已配置的「发送邮件」动作,找到附件配置区域:
- 若为单附件添加模式,直接填写两项参数:
- 附件名称:填写步骤1生成的动态文件名
- 附件内容:选择「Get blob content (V2)」动作输出的
File Content参数即可
- 若需使用附件数组模式,直接填入以下结构的动态内容:
[ { "Name": "@{outputs('Get_blob_content_(V2)')?['headers/x-ms-blob-name']}", "ContentBytes": "@{body('Get_blob_content_(V2)')}" } ]
异常排查
- 若提示Blob不存在:优先校验生成的文件名日期格式、时区是否和实际存储的Blob文件名完全匹配
- 若附件无法打开:确认「Get blob content (V2)」动作运行正常,返回的文件内容大小和实际Blob大小一致,无需手动对文件内容做base64转码,平台会自动处理适配邮件附件格式要求
内容的提问来源于stack exchange,提问作者Sreedevi Yerroju
相关产品推荐
相关产品推荐

