Python中使用win32com调用Outlook发送带附件以及正文带图片的邮件

其实使用win32com调用outlook已经有很多文章了,但是我发现里面极少有介绍正文带图片的发送办法,以及如何避免踩坑,今天我把自己的心得发一下

import win32com.client as win32
outlook = win32.Dispatch('Outlook.Application')
Mail_Item = outlook.CreateItem(0)
Mail_Item.Recipients.Add('[email protected]')

Mail_Item.Subject ='test-看看outlook和网页版里是否分别都能显示图片'
Mail_Item.BodyFormat = 2
Mail_Item.Attachments.Add(r'C:\Users\asus\PycharmProjects\xlwings\test.jpg') # 先把要插入的图片当作一个附件添加
Mail_Item.Attachments.Add(r'd:\1\bj.xlsx') # 添加正常的附件
Mail_Item.HtmlBody = "
" # 然后在htmlbody里面调用这个图片,就可以进入到正文里面了 # 注意这里有两个坑:1、文件名千万别用中文,否则会出错;2、一定要把outlook的窗体展示出来再发送,也就是Display(),否则,除非对方也是outlook客户端,否则图片会无法显示 Mail_Item.Display() # 这一步非常重要,没了这一步,在网页版邮箱就无法显示图片 Mail_Item.Send()

你可能感兴趣的:(Python)