首页 > 解决方案 > 通过邮件发送 Excel 工作表图像

问题描述

我有一个带有嵌入图像的 Excel。

如何使用图像名称通过邮件发送?我不想附加发送它,我想将它嵌入到邮件的 html 中。这是可能的?

非常感谢您提前

示例代码:

With objMail
       'Set body format to HTML
       .BodyFormat = olFormatHTML

       .To = Sheet3.Range(inTo)
       If (inAttach1 <> "") Then .Attachments.Add inAttach1
       If (inAttach2 <> "") Then .Attachments.Add inAttach2
       If (Sheet3.Range(inCC) <> "") Then .CC = Sheet3.Range(inCC)

       sBody = Sheet1.Range("B2").Value
       '----insert Name
       iPos = InStr(1, sBody, "[FirstName]", vbTextCompare)
       iPos2 = iPos + Len("[FirstName]")
       sText1 = Mid(sBody, 1, iPos - 1)
       sText2 = Mid(sBody, iPos2, Len(sBody) - iPos2 + 1)
       sBody = sText1 & Sheet3.Range(inName) & sText2


       .Subject = inSubj
       .SentOnBehalfOfName = inFrom
       .HTMLBody = sBody
       'Importancia mail
       '.Importance = olImportanceHigh
       .sEnd
    End With

标签: htmlexcelvbaoutlook

解决方案


创建附件并使用 设置PR_ATTACH_CONTENT_ID属性(DASL 名称"http://schemas.microsoft.com/mapi/proptag/0x3712001F"Attachment.PropertyAccessor

然后,您的 HTML 正文(MailItem.HTMLBody属性)将需要通过 cid 引用该图像附件:

img src="cid:xyz"

其中 xyz 是PR_ATTACH_CONTENT_ID属性的值。

使用OutlookSpy查看现有消息(单击 IMessage 按钮)。

attachment = mailitem.Attachments.Add("c:\temp\MyPicture.jpg")
attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyId1")
mailitem.HTMLBody = "<html><body>Test image <img src=""cid:MyId1""></body></html>"

推荐阅读