为什么一个图像embedded成功的电子邮件与.Display但不是。发送?
这是我觉得很奇怪,很难解决的事情,我有以下代码:
Sub EmailImage() Dim oApp As Outlook.Application Dim oEmail As MailItem Dim colAttach As Outlook.Attachments Dim oAttach As Outlook.Attachment Set oApp = CreateObject("Outlook.Application") Set oEmail = oApp.CreateItem(olMailItem) Set colAttach = oEmail.Attachments Set oAttach = colAttach.Add("C:\Users\User1\Documents\thumbs-up.jpg") oEmail.Close olSave oEmail.To = "abc@abc123.com" oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:thumbs-up.jpg' align=baseline border=0> </BODY>" oEmail.Display Set oEmail = Nothing Set colAttach = Nothing Set oAttach = Nothing Set oApp = Nothing End Sub
使用.Display
代码,图像embedded成功,一旦图像显示,您点击发送,接收者可以看到电子邮件中的图像,如下所示:
但问题是我有很多电子邮件发送,所以使用.Display
而不是.Display
,一旦我这样做,但图像被附加到电子邮件,但不能在其中看到。
以下是更改后的代码:
Sub EmailImage() Dim oApp As Outlook.Application Dim oEmail As MailItem Dim colAttach As Outlook.Attachments Dim oAttach As Outlook.Attachment Set oApp = CreateObject("Outlook.Application") Set oEmail = oApp.CreateItem(olMailItem) Set colAttach = oEmail.Attachments Set oAttach = colAttach.Add("C:\Users\User1\Documents\thumbs-up.jpg") oEmail.Close olSave oEmail.To = "abc@abc123.com" oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:thumbs-up.jpg' align=baseline border=0> </BODY>" oEmail.Send Set oEmail = Nothing Set colAttach = Nothing Set oAttach = Nothing Set oApp = Nothing End Sub
以及在电子邮件中可以看到的图像:
我不知道为什么发生这种情况,有人可以帮忙吗?
请注意,我正在使用Windows 7,Excel 2010和Outlook 2010。
您需要将附件上的PR_ATTACH_CONTENT_ID属性(DASL名称http://schemas.microsoft.com/mapi/proptag/0x3712001F )设置为与HTML正文中的img
标记的cid
属性匹配的值。
Set oAttach = colAttach.Add("C:\Users\User1\Documents\thumbs-up.jpg") oAttach.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyCid" ... oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:MyCid' align=baseline border=0> </BODY>"
这对我工作:
Sub EmailImage() Dim oApp As Object Dim oEmail As Object Set oApp = CreateObject("Outlook.Application") Set oEmail = oApp.CreateItem(olMailItem) Set colAttach = oEmail.Attachments Set oAttach = colAttach.Add("C:\Users\User1\Documents\thumbs-up.jpg") oEmail.Close olSave oEmail.To = "abc@abc123.com" oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:thumbs-up.jpg' align=baseline border=0> </BODY>" oEmail.Send Set oEmail = Nothing Set colAttach = Nothing Set oAttach = Nothing Set oApp = Nothing End Sub