我想将保存在本地目录中的图像嵌入到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_ID
MAPI属性设置为<img
>使用Attachment.PropertyAccessor.SetProperty
:的标签(例如<img src='cid:MyTestId'>
(
Attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", "MyTestId")