3

以下に示すように、現在、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
                     );
4

3 に答える 3

-1

テキスト コンテンツと CSS を含む 1 つの HTML ページを取得します。

メールに埋め込んで送信したい画像を取得します

Base64 エンコーダーを使用して、バイナリ写真を巨大なテキスト文字列に変換します (例: http://www.greywyvern.com/code/php/binary2base64 )

通常の画像ソースをその文字列に置き換えます

ファイルを保存し、通常どおり送信します

于 2013-08-07T11:01:11.480 に答える