以下に示すように、現在、Outlook 2010 と python を使用して HTML 形式のメールを送信することを既に実装しています。
def send_mail_via_com(self):
o = win32com.client.Dispatch("Outlook.Application")
Msg = o.CreateItem(0)
Msg.To = self.myEmailAddress
Msg.BCC = self.myEmailAddress
Msg.Subject = 'This is Subject'
Msg.HTMLBody = htmlEmailContent
Msg.Send()
今後、HTML 形式のメールにいくつかの埋め込み画像を表示したいので、HTML ソースを確認しました。次のようになります。
<img border=0 width=117 height=20 id="Picture_x0020_2" src="cid:image001.png@01CE9386.AB9B5E70" alt="Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: cid:786FB7C2-A5F6-462A-B0FD-EA865CD02221@xxx.example.com">
画像ファイルを添付しようとしました (上記の html コードで参照されているものと同じ名前を添付ファイルとして使用) が、添付ファイルになるだけで、埋め込み画像としてテキスト本文に表示されません。私たちのメール サーバーは SMTP プロトコルをサポートしていないため、埋め込み画像を含むマルチパート HTML メールの送信 のように smtplibを使用できません。誰か助けてくれませんか?前もって感謝します!
attachment1 = "G:\\image001.png"
Msg.Attachments.Add(attachment1)
2013/8/8 更新、http://social.msdn.microsoft.com/Forums/vstudio/en-US/6c063b27-7e8a-4963-ad5f-ce7e5ffb2c64/how-to-embed- から C# のバージョン コードを取得しました。 image-in-html-body-in-c-into-outlook-mail、誰でもこれらのPython対応コードを見せてくれませんか:
Attachment attachment = newMail.Attachments.Add(
@"E:\Pictures\image001.jpg"
, OlAttachmentType.olEmbeddeditem
, null
, "Some image display name"
);
string imageCid = "image001.jpg@123";
attachment.PropertyAccessor.SetProperty(
"http://schemas.microsoft.com/mapi/proptag/0x3712001E"
, imageCid
);
newMail.HTMLBody = String.Format(
"<body><img src=\"cid:{0}\"></body>"
, imageCid
);