python用win32 发送邮件,内容为图片
时间: 2024-03-15 13:47:49 浏览: 252
以下是一个示例代码,可以使用win32库发送一张图片作为邮件正文:
```python
import os
import win32com.client
from PIL import Image
# 邮件发送方
FROM = 'your_email_address'
PASSWORD = 'your_email_password'
# 邮件接收方
TO = ['email_address_1', 'email_address_2']
# SMTP服务器地址和端口号
SMTP_SERVER = 'smtp.your_email_provider.com'
SMTP_PORT = 587
# 加载图片并将其转换为HTML格式的字符串
img_path = 'path_to_your_image_file'
with Image.open(img_path) as img:
img_html = '<img src="data:image/png;base64,{}">'.format(img.tobytes().hex())
# 创建Outlook应用程序对象
outlook = win32com.client.Dispatch('Outlook.Application')
# 创建MailItem对象并设置属性
mail = outlook.CreateItem(0)
mail.Subject = 'Image email'
mail.To = ';'.join(TO)
mail.HTMLBody = img_html
# 连接到SMTP服务器并发送邮件
mail.Send()
print('Email sent successfully!')
```
这个示例代码中,我们使用PIL库将图片转换为HTML格式的字符串,并使用win32com库通过Outlook应用程序对象创建一个MailItem对象。在设置MailItem对象的HTMLBody属性时,我们将图片的HTML字符串插入到了邮件正文中。最后,我们调用MailItem对象的Send方法发送邮件。
阅读全文