如何在Azure Logic App或Power App中添加自定义X-header后发送邮件?
在Azure Logic Apps中给邮件添加自定义X-header的解决方案
你提到的Send an email (v2)连接器确实没有提供自定义X-header的配置选项,结合你的Blob读文件发邮件场景,可通过以下两种方案实现需求:
方法一:调用Microsoft Graph API发送邮件
通过HTTP动作调用Graph API,支持直接定义邮件的自定义头部信息,同时可以附加Blob存储中的文件:
- 在Logic Apps流程中添加HTTP动作,设置:
- 方法:
POST - URL:
https://graph.microsoft.com/v1.0/me/sendMail - 身份验证:选择
Active Directory OAuth,配置对应的租户ID、客户端ID、客户端密钥,权限勾选Mail.Send
- 方法:
- 构造请求体(示例):
{ "message": { "subject": "你的邮件主题", "body": { "contentType": "Text", "content": "邮件正文内容" }, "toRecipients": [ { "emailAddress": { "address": "收件人邮箱@xxx.com" } } ], "attachments": [ { "@odata.type": "#microsoft.graph.fileAttachment", "name": "@{body('Get_blob_content')?['DisplayName']}", "contentBytes": "@{base64(body('Get_blob_content'))}" } ], "internetMessageHeaders": [ { "name": "X-你的自定义头名称", "value": "自定义头对应的值" } ] }, "saveToSentItems": "true" }- 其中
base64(body('Get_blob_content'))用于将Blob读取的文件内容转为Graph API要求的base64格式 - 在
internetMessageHeaders数组中添加你的自定义X-header键值对即可
- 其中
方法二:使用SendGrid连接器
如果你的邮件发送可以切换为SendGrid服务,其连接器支持直接配置自定义头部:
- 在Logic Apps中添加SendGrid - Send Email动作
- 配置好基础的收件人、主题、正文后,展开Advanced options
- 在
Headers字段中输入自定义X-header的键值对,格式为X-自定义头名称: 对应值 - 附件部分直接选择从Blob读取的文件内容即可
注意事项
- 使用Graph API时,需确保Azure AD应用已授予
Mail.Send权限,且Logic App的身份验证配置正确 - 使用SendGrid时,需要提前在SendGrid控制台获取API密钥,并在连接器中配置
内容的提问来源于stack exchange,提问作者Moinak
相关产品推荐
相关产品推荐

