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

Azure Logic Apps:添加CSV附件发送邮件时触发正文验证错误

逻辑应用CSV文件邮件发送失败的解决办法

问题根源

CSV文件里的逗号、换行、双引号这些特殊字符,在Get Blob Content获取内容后直接塞到Send Email的正文里时,会破坏邮件正文的格式校验规则——毕竟逻辑应用的Send Email对正文的HTML或纯文本格式有严格要求。其他格式文件是作为二进制附件发送的,不会把内容放进正文,所以没这问题。

具体解决步骤

方案1:别把CSV内容放进正文(最简单)

如果不需要在邮件正文显示CSV内容,直接修改Send Email的配置:

  • 仅在附件栏绑定Get Blob Content的Body输出,文件名用@{triggerBody()?['Name']}自动获取原文件名
  • 正文填写固定内容即可,比如“指定文件夹收到新文件,附件已附上”

方案2:转义CSV里的特殊字符(需要显示内容时用)

要是必须在正文展示CSV内容,得先把特殊字符转义:

  1. 在Get Blob Content和Send Email中间添加一个Compose步骤
  2. 在Compose的输入框中填入以下表达式,把特殊字符转成HTML实体:
    replace(replace(replace(body('Get_Blob_Content'), '"', '&quot;'), '<', '&lt;'), '>', '&gt;')
    
  3. 将Send Email的正文字段绑定这个Compose步骤的输出

方案3:转成HTML表格展示(进阶美观版)

想让CSV内容在正文里更规整,可转成HTML表格:

  1. 添加一个Compose步骤,输入下面的表达式(默认CSV第一行为表头):
    concat('<table border="1">', join(xpath(xml(concat('<root><row>', replace(replace(body('Get_Blob_Content'), '"', ''), '\n', '</row><row>'), '</row></root>')), '//row'), '<tr>', join(xpath(xml(concat('<root><cell>', replace(., ',', '</cell><cell>'), '</cell></root>')), '//cell'), '<td>', '</td>'), '</tr>'), '</table>')
    
  2. 将Send Email的正文格式设置为HTML,再绑定Compose步骤的输出

额外提醒

  • 检查Send Email的正文格式:用纯文本格式时要确保换行符能被正确识别,用HTML格式时必须转义特殊字符
  • 将Get Blob Content的编码设置为UTF-8,避免因乱码引发验证错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:20:02