首页 > 解决方案 > 使用 html 和嵌套的 f 字符串在 Outlook 中插入图像

问题描述

我正在尝试使用 python 将一些图像嵌入到 Outlook 中的电子邮件中。但是,图像没有出现,而是出现一个框,说明“无法显示图像。验证链接是否指向正确的文件和位置。” 该链接是正确的,因为我已复制并粘贴了用于创建文件的行。

我的嵌套 f 字符串不正确还是我还缺少其他东西?

我已经从电子邮件中删除了机密信息,所以看起来有点稀疏,但保留了带有图像参考的线条。

def sendmail(region, service_line, gpn_list, cc_list):
inventory = exposure_final[(exposure_final['Engagement Region'] == region) &
                       (exposure_final['Engagement Service Line'] == service_line)]\
                  ['Exposure Inventory Balance'].sum()/1e6
inventory_string = "{:.1f}".format(inventory)
inventory_lastwk = last_wk[(last_wk['Engagement Region'] == region) &
                       (last_wk['Engagement Service Line'] == service_line)]\
                  ['Exposure Inventory Balance'].sum()/1e6
change = "{:.1f}".format((inventory - inventory_lastwk)*100/inventory_lastwk)
if float(change) > 0:
    direction = 'an increase of'
else:
    direction = 'a decrease of'
cleanedlist = [x for x in gpn_list if str(x) != 'nan']
emails = ';'.join(map(str, cleanedlist))
olMailItem = 0x0
obj = win32com.client.Dispatch("Outlook.Application")
newMail = obj.CreateItem(olMailItem)
newMail.Subject = f'{service_line} ({region}) inventory weekly as at FY21 P{period}w{week}'
 
html = f'''<p>Dear Partners,<br /><br />
AR and WIP as at FY21 P{period}w{week}: ${inventory_string}mil, {direction} {str(change)}% compared 
to last week.</p>
<p><img src={f'{directory}{folder_mth}{folder_wk}{region}_chart.jpg'} alt="" /><br />
<img src={f'{directory}{folder_mth}{folder_wk}{region}_table.jpg'} alt="" /><br /></p>
<p>Blah blah blah.<br /><img src={f'{directory}{folder_mth}{folder_wk}{region} 
{service_line}_partners.jpg'} alt="" /></p>
</p>'''

newMail.HTMLBody = html
newMail.To = emails
newMail.CC = cc_list
newMail.Display()

标签: pythonimageoutlookembedf-string

解决方案


推荐阅读