我无法使用python在电子邮件正文中添加图像,我可以添加图片作为附件但我想要一个代码在mailbody中添加图像

May*_*are 2 python email outlook image win32com

Right now I am using below code:

import win32com.client as win32
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'to address'
mail.Subject = 'Message subject'
mail.Body = 'Message body'
mail.HTMLBody = '<h2>HTML Message body</h2>'# this field is optional
**mail.Attachments.Add('C:\Users\MA299445\Downloads\screenshot.png')**
mail.Send()
Run Code Online (Sandbox Code Playgroud)

我可以附上图片,但我想将这张图片粘贴到电子邮件正文中.

提前致谢

Dmi*_*nko 6

使用创建附件并设置PR_ATTACH_CONTENT_ID属性(DASL名称"http://schemas.microsoft.com/mapi/proptag/0x3712001F")Attachment.PropertyAccessor.

那么你的HTML body (MailItem.HTMLBody属性)需要通过cid引用该图像附件:

img src="cid:xyz"
Run Code Online (Sandbox Code Playgroud)

其中xyz是PR_ATTACH_CONTENT_ID属性的值.

使用OutlookSpy查看现有消息(单击IMessage按钮).

attachment = mail.Attachments.Add("C:\Users\MA299445\Downloads\screenshot.png")
attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyId1")
mail.HTMLBody = "<html><body>Test image <img src=""cid:MyId1""></body></html>"
Run Code Online (Sandbox Code Playgroud)