ASP 将映像嵌入到 CDO.消息电子邮件



我正在使用ASP classic和CDO通过CreateMHTMLBody方法发送电子邮件。我的电子邮件中有几个图像,其中一些是静态的,不会改变,但其中一些会根据电子邮件内容而改变。一些邮件软件(如iCloud)将图片显示为附件,即使我都有完整的路径URL地址。我用过AddRelatedBodyPart但现在它们在你必须在的地方显示图像,但他们仍然在附件中显示图像。我希望图片只显示在电子邮件正文中,而不是附件中。有人知道如何解决这个问题吗?这是我的代码示例:

Set myMail=CreateObject("CDO.Message")
myMail.Subject= "Subject of Email"
myMail.From= "from@site.com"
myMail.To= "to@site.com"
myMail.CreateMHTMLBody "http://www.mysite.com/email.html"
strImagePath = Server.MapPath("") & "imagesmypic1.jpg"
myMail.AddRelatedBodyPart strImagePath, "my_pic_1", 0
strImagePath = Server.MapPath("") & "imagesmypic2.jpg"
myMail.AddRelatedBodyPart strImagePath, "my_pic_2", 0
myMail.Send
set myMail=nothing

提前感谢您的时间和帮助。

为了在

电子邮件中包含图像,您必须在邮件正文中使用内联IMG标签,其中包含图像的完全限定路径(http://...)。不要将它们视为附件。

CreateMHTMLBody不是

你需要的。 此方法将创建一个多部分消息,用于获取 URL 并对返回的 HTML 进行后处理。 它为找到的每个 img src 获取资源,将返回的资源编码为正文部分,并更新 HTML img src 以指向正文部分。

此外,CreateMHTMLBody在ASP代码中使用并不是一件好事,因为它使用WinINET Http堆栈来获取资源,因此不应从ASP代码中使用WinINET。

您真正需要的是使用 WinHTTP 之类的东西来获取 HTML 资源,然后将其分配给消息的 HTMLBody 属性。

我知道

这个问题很老,但也许你(或其他人)仍在寻找答案:

myMail.Configuration.Fields("urn:schemas:httpmail:content-disposition-type")="inline"
myMail.Configuration.Fields.Update

这应该会导致大多数邮件客户端不将图像呈现为附件。

true;
 strImagePath = Server.MapPath("") & "imagesmypic1.jpg"
response.write strImagePath ' try
 myMail.AddRelatedBodyPart strImagePath, "mypic1.jpg", 0

最新更新