Power Automate中如何将Azure Blob的CSV转为RFC 2822标准EML?
Power Automate中生成RFC 2822标准EML文件的实现方案
Power Automate没有直接生成符合RFC 2822标准EML文件的内置动作,但可以通过以下两种可靠方式完成需求:
方法一:手动拼接EML结构(最灵活)
EML本质是遵循RFC 2822规范的纯文本格式,你可以用「撰写」动作直接拼接完整的EML内容,包含邮件头、正文和CSV附件的MIME多部分结构。
具体步骤:
- 读取Azure Blob中的CSV文件内容,将其存入变量(例如
csvContent)。 - 添加「撰写」动作,输入以下模板内容(替换占位符为实际值):
From: <sender@example.com> To: <recipient@example.com> Subject: CSV数据附件邮件 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="unique-boundary-12345" --unique-boundary-12345 Content-Type: text/plain; charset="UTF-8" 请查收附件中的CSV数据。 --unique-boundary-12345 Content-Type: text/csv; name="data.csv" Content-Disposition: attachment; filename="data.csv" Content-Transfer-Encoding: base64 @{base64(body('读取_Blob_内容'))} --unique-boundary-12345--
关键细节:
unique-boundary-12345需使用唯一字符串,避免与邮件内容冲突- CSV内容必须通过
base64()函数编码,符合MIME附件传输要求 - 所有换行必须用
\r\n(RFC 2822强制要求),Power Automate中可通过decodeUriComponent('%0D%0A')插入标准换行
方法二:借助邮件动作间接生成(更简便)
若你的核心需求是发送带CSV附件的邮件,而非单独生成EML文件,可跳过手动构建步骤:
- 读取Blob的CSV内容后,用「创建文件」动作将其临时保存到OneDrive/SharePoint(生成实体文件)。
- 使用「发送电子邮件(V2)」动作,添加该CSV文件作为附件直接发送。
- 若必须生成EML文件,可在发送后通过Office 365邮件的「获取邮件」动作提取对应邮件的EML内容(需确保租户权限允许)。
注意事项
- 手动拼接EML时,邮件头字段(如
From、To)需严格遵循RFC 2822格式,避免语法错误导致收件端无法解析 - 若CSV文件编码非UTF-8,需在
Content-Type中指定对应字符集(如gb2312)
内容的提问来源于stack exchange,提问作者Moinak
相关产品推荐
相关产品推荐

