欢迎访问宙启技术站
智能推送

Python中email.mime.multipart与邮件的嵌入式图片

发布时间:2023-12-14 11:54:52

在Python中,可以使用email.mime.multipart模块创建带有嵌入式图片的邮件。email.mime.multipart模块提供了创建多部分邮件的功能,可以将邮件的文本内容和图片同时包含在邮件中。

下面是一个使用email.mime.multipart模块创建带有嵌入式图片的邮件的例子:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage

# 创建邮件对象
msg = MIMEMultipart()

# 设置邮件的主题
msg['Subject'] = '嵌入式图片测试'

# 设置邮件的发送者
msg['From'] = 'sender@example.com'

# 设置邮件的接收者
msg['To'] = 'recipient@example.com'

# 创建邮件的文本内容
text = MIMEText('这是一封带有嵌入式图片的测试邮件。')

# 向邮件对象中添加文本内容
msg.attach(text)

# 读取图片文件
with open('image.jpg', 'rb') as f:
    # 创建图片对象
    image = MIMEImage(f.read())

    # 配置图片的Content-ID,用于在邮件文本中引用图片
    image.add_header('Content-ID', '<image1>')

    # 向邮件对象中添加图片
    msg.attach(image)

# 连接SMTP服务器
server = smtplib.SMTP('smtp.example.com', 587)
server.starttls()

# 登录邮箱
server.login('username@example.com', 'password')

# 发送邮件
server.sendmail('sender@example.com', 'recipient@example.com', msg.as_string())

# 关闭连接
server.quit()

在以上示例中,首先引入了smtplib和email模块中的相关类。然后,创建了一个MIMEMultipart对象,表示整个邮件,设置了邮件的主题、发件人和收件人。

然后,使用MIMEText类创建了一个邮件的文本内容对象,并将其添加到MIMEMultipart对象中。

接下来,通过打开图片文件的方式读取图片文件,并使用MIMEImage类创建了一个图片对象,调用add_header方法为图片配置Content-ID,用于在邮件文本中引用图片,并将图片对象添加到MIMEMultipart对象中。

最后,连接SMTP服务器并登录邮箱,调用sendmail方法发送邮件。

需要注意的是,SMTP服务器和登录邮箱的信息需要根据具体情况进行配置。另外,需将"image.jpg"替换为实际的图片文件路径。

以上就是使用email.mime.multipart模块创建带有嵌入式图片的邮件的示例。通过调整相关参数,可以扩展或修改这个示例来满足具体的需求。