使用 html 和嵌套的 f 字符串在 Outlook 中插入图像

问题描述

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

我嵌套的 f-string 是否不正确,还是我遗漏了其他东西?

我已经从电子邮件删除了机密信息,所以看起来有点稀疏,但保留了图片引用的行。

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()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)