如何用Power Automate下载并发送Outlook图片附件(无订阅)
无需Power Automate订阅,将Outlook图片附件以图片形式发送的方法
你尝试用Power Automate下载图片时,邮件正文显示数据而非图片,以下是你提供的Power Automate输出的附件数据:
"attachments": [ { "@odata.type": "#microsoft.graph.fileAttachment", "id": "AAMkADU2MjNiNTU2LWY5YTAtNGM0MS1hNWQ5LTdmMTJlMTIzYWJkMQBGAAAAAABfK4moQ22ISJuBMsoGIcM6BwAAywrHK3zOT5jkS4DyLB8BAAHpvk0cAAAAywrHK3zOT5jkS4DyLB8BAAHpvl0DAAABEgAQAPen6EKm26ZJhIAv3bw2opc=", "lastModifiedDateTime": "2024-06-24T09:35:06+00:00", "name": "2ff5730931074c29be64df06c8126e97", "contentType": "image/png", "size": 204114, "isInline": true }, { "@odata.type": "#microsoft.graph.fileAttachment", "id": "AAMkADU2MjNiNTU2LWY5YTAtNGM0MS1hNWQ5LTdmMTJlMTIzYWJkMQBGAAAAAABfK4moQ22ISJuBMsoGIcM6BwAAywrHK3zOT5jkS4DyLB8BAAHpvk0cAAAAywrHK3zOT5jkS4DyLB8BAAHpvl0DAAABEgAQANRa3svAlylEn6SII-zNjQk=", "lastModifiedDateTime": "2024-06-24T09:35:06+00:00", "name": "WeeklyAuditReport - (Page 1).png", "contentType": "application/octet-stream", "size": 240586, "isInline": false } ]
方法一:Outlook客户端手动操作
- 处理内联图片(
isInline: true):打开原邮件,选中正文里的内联图片,右键复制,粘贴到新邮件正文即可直接显示为图片。 - 处理普通图片附件(
isInline: false):右键点击附件,选择「插入」→「图片」,图片会嵌入到新邮件正文;若需保留附件形式,先右键保存附件为PNG格式,再添加到新邮件即可。
方法二:VBA脚本批量处理(适合多邮件场景)
如果需要批量处理,可通过Outlook VBA脚本自动提取图片并生成新邮件:
- 打开Outlook,按
Alt+F11打开VBA编辑器。 - 插入模块,粘贴以下代码:
Sub SendImageAsInline() Dim objMail As Outlook.MailItem Dim objNewMail As Outlook.MailItem Dim objAttach As Outlook.Attachment Set objMail = Application.ActiveExplorer.Selection.Item(1) Set objNewMail = Application.CreateItem(olMailItem) With objNewMail .To = "目标邮箱地址" ' 替换为实际收件人邮箱 .Subject = objMail.Subject & " - 图片版" .BodyFormat = olFormatHTML ' 遍历所有附件,提取图片 For Each objAttach In objMail.Attachments If InStr(objAttach.ContentType, "image/") > 0 Or objAttach.FileName Like "*.png" Or objAttach.FileName Like "*.jpg" Then If objAttach.IsInline Then ' 插入内联图片到正文 .HTMLBody = .HTMLBody & "<img src='cid:" & objAttach.FileName & "' />" & "<br>" objAttach.SaveAsFile Environ("TEMP") & "\" & objAttach.FileName .Attachments.Add Environ("TEMP") & "\" & objAttach.FileName, olByValue, 0, objAttach.FileName Else ' 将普通图片附件转为内联显示 .Attachments.Add objAttach.PathName, olByValue, 0, objAttach.FileName .HTMLBody = .HTMLBody & "<img src='cid:" & objAttach.FileName & "' />" & "<br>" End If End If Next .Display ' 预览邮件,如需直接发送替换为.Send End With ' 释放对象 Set objMail = Nothing Set objNewMail = Nothing Set objAttach = Nothing End Sub
- 运行脚本:在Outlook中选中目标邮件,按
F5执行宏,即可生成包含图片的新邮件。
注意事项
- 对于
contentType为application/octet-stream的图片附件,Outlook通常会自动识别格式,直接插入即可;若识别失败,手动保存为PNG/JPG格式后再插入。 - 使用VBA脚本需先在Outlook中启用宏:文件→选项→信任中心→信任中心设置→宏设置,选择「启用所有宏」(注意防范宏安全风险)。
内容的提问来源于stack exchange,提问作者Jerry
相关产品推荐
相关产品推荐

