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


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:UsersMA299445Downloadsscreenshot.png')**
mail.Send()

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

提前致谢

您可以使用

<img> HTML 标记:

encoded_image = base64.b64encode(image_file.getvalue()).decode("utf-8")
html = '<img src="data:image/png;base64,%s"/>' % encoded_image

您可以将标签放入您的 HTML 内容中。

不要忘记导入所需的模块:

import base64

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

(。

然后,您的 HTML 正文(MailItem.HTMLBody属性(需要通过 cid 引用该图像附件:

<img src="cid:xyz"/>

其中 xyz 是PR_ATTACH_CONTENT_ID属性的值。

使用OutlookSpy查看现有邮件(我是其作者( - 单击IMessage按钮,转到GetAttachmentTable选项卡,双击附件以查看其属性。

attachment = mail.Attachments.Add("C:UsersMA299445Downloadsscreenshot.png")
attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyId1")
mail.HTMLBody = "<html><body>Test image <img src=""cid:MyId1""></body></html>"

最新更新