0

我正在使用 ASP 经典和 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("\") & "\images\mypic1.jpg"
myMail.AddRelatedBodyPart strImagePath, "my_pic_1", 0

strImagePath = Server.MapPath("\") & "\images\mypic2.jpg"
myMail.AddRelatedBodyPart strImagePath, "my_pic_2", 0

myMail.Send
set myMail=nothing

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

4

4 回答 4

0

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

于 2012-06-05T20:55:30.290 回答
0

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

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

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

于 2012-06-06T12:40:14.227 回答
0

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

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

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

于 2015-06-11T22:07:59.190 回答
0
true;

 strImagePath = Server.MapPath("\") & "\images\mypic1.jpg"

response.write strImagePath ' try

 myMail.AddRelatedBodyPart strImagePath, "mypic1.jpg", 0
于 2017-08-29T14:26:35.527 回答