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

電子メールに画像を含めるには、メッセージの本文に画像への完全修飾パス(http:// ...)を含むインラインIMGタグを使用する必要があります。それらを添付ファイルとして扱わないでください。

于 2012-06-05T20:55:30.290 に答える
0

CreateMHTMLBody必要なものではありません。このメソッドは、URL をフェッチし、返された HTML を後処理するマルチパート メッセージを作成します。見つかったすべての img src のリソースをフェッチし、返されたリソースをボディ パーツとしてエンコードし、ボディ パーツを指すように HTML img src を更新します。

またCreateMHTMLBody、WinINET Http スタックを使用してリソースをフェッチするため、ASP コードで使用するのは適切ではありません。WinINET は ASP コードから使用しないでください。

本当に必要なのは、WinHTTP のようなものを使用して HTML リソースをフェッチし、それを Message のHTMLBodyプロパティに割り当てることです。

于 2012-06-06T12:40:14.227 に答える
0

I know this question is old but maybe you (or someone else) is still looking for the answer:

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

This should cause most mail clients to not render images as attachments.

于 2015-06-11T22:07:59.190 に答える