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()
我可以附上图片,但我想将这张图片粘贴到电子邮件正文中。
提前致谢
答案 0 :(得分:5)
使用Attachment.PropertyAccessor
创建附件并设置PR_ATTACH_CONTENT_ID属性(DASL名称(MailItem.HTMLBody
“)。
您的HTML正文img src="cid:xyz"
属性)然后需要通过cid引用该图像附件:
PR_ATTACH_CONTENT_ID
其中xyz是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>"
属性的值。
查看包含OutlookSpy的现有邮件(单击IMessage按钮)。
{{1}}
答案 1 :(得分:0)
您可以使用<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