将图像嵌入outlook电子邮件



我想将保存在本地目录中的图像嵌入到outlook电子邮件中。已经定义了一个函数来做这件事,并根据添加了html。然而,图像没有出现。文件路径没有问题,因为我已经检查过它是否正常工作。我做错了什么?

def Emailer(text, subject, recipient, cc):
import win32com.client as win32
import os
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = recipient
mail.CC = cc
mail.Subject = subject
mail.HtmlBody = text
mail.Display(True)
MailSubject = "Daily Report for " + date_slash
MailInput ="""
<div>
<img src={}></img>
</div>
<div>
<p>
</div>
<div>
<img src={}></img>
</div>
<div>
<p>
</div>
<div>
<img src={}></img>
</div>
<div>
<p>
</div>
<div>
<img src={}></img>
</div>
<div>
<p>
</div>
<div>
<img src={}></img>
</div>
"""

MailInput=MailInput.format(date_slash、sum_path、ovdv_path、cot_path、rub_path、pnl_path(MailRecipient=";xxx@yyy.com"MailCc=";xxx@yyy.com">

远程收件人显然看不到您机器上的文件。

您需要将图像添加为附件(Attachment = MailItem.Attachments.Add(,并将PR_ATTACH_CONTENT_IDMAPI属性设置为<img>使用Attachment.PropertyAccessor.SetProperty:的标签(例如<img src='cid:MyTestId'>(

Attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E",  "MyTestId")

最新更新