首页 > 解决方案 > Python如何使用win32com.client和outlook插入图片?

问题描述

我正在尝试使用 win32com.client 发送 html 电子邮件。这是一个示例代码:

import win32com.client as win32  

mail = win32.Dispatch('outlook.application').CreateItem(0)
mail.To = 'sample@sample.com'
mail.Subject = 'test'
mail.HTMLBody = html_pages

mail.Send()

我现在的解决方案是将图像上传到服务器并将网址插入 html_pages。缺点是服务器关闭时不显示图像。有没有办法使用 win32com 将图像与电子邮件一起发送?

标签: pythonhtmlemailwin32com

解决方案


一种方法是将图像作为附件发送:

import win32com.client as win32  

mail = win32.Dispatch('outlook.application').CreateItem(0)
mail.To = 'sample@sample.com'
mail.Subject = 'test'
mail.HTMLBody = html_pages

attachment  = '*path to your image*'
mail.Attachments.Add(attachment)
mail.Send()

或者您可以将图像放在 html 正文中:

import win32com.client as win32  

mail = win32.Dispatch('outlook.application').CreateItem(0)
mail.To = 'sample@sample.com'
mail.Subject = 'test'
mail.HTMLBody = html_pages + <br><img src="path">

mail.Send()

或者,如果您希望图像实际附加到正文而不链接到路径,请查看此处:

我无法使用 python 在电子邮件正文中添加图像,我可以添加图片作为附件,但我想要一个代码来在邮件正文中添加图像


推荐阅读