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

如何在Python中使用MIMEMultipart()创建邮件的多部分内容

发布时间:2023-12-25 18:28:37

在Python中,可以使用MIMEMultipart()模块创建邮件的多部分内容。MIMEMultipart()是邮件中的一种容器,可以包含多个MIME对象,包括文本、图片、附件等。

下面是一个使用MIMEMultipart()创建邮件多部分内容的例子。

首先,需要导入相应的模块:

from email.mime.multipart import MIMEMultiart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.application import MIMEApplication
import smtplib

接下来,可以创建一个MIMEMultipart()对象:

msg = MIMEMultipart()

然后,可以向msg中添加文本、图片、附件等内容。以添加文本为例:

text = "这是邮件的正文内容"
part1 = MIMEText(text, "plain")  # 创建一个文本类型的MIME对象
msg.attach(part1)  # 将MIME对象添加到MIMEMultipart对象中

类似地,可以添加图片和附件:

with open("image.jpg", "rb") as f:
    img_data = f.read()
part2 = MIMEImage(img_data, name="image.jpg")  # 创建一个图片类型的MIME对象
msg.attach(part2)

with open("document.pdf", "rb") as f:
    file_data = f.read()
part3 = MIMEApplication(file_data, name="document.pdf")  # 创建一个附件类型的MIME对象
part3['Content-Disposition'] = 'attachment; filename="document.pdf"'
msg.attach(part3)

最后,可以将msg的内容转化为字符串,并通过SMTP发送邮件:

from_addr = "from@example.com"
to_addr = "to@example.com"
password = "password"

msg["From"] = from_addr
msg["To"] = to_addr
msg["Subject"] = "邮件主题"

try:
    server = smtplib.SMTP_SSL("smtp.example.com", 465)
    server.login(from_addr, password)
    server.sendmail(from_addr, [to_addr], msg.as_string())
    server.quit()
    print("邮件发送成功!")
except Exception as e:
    print(str(e))

以上示例演示了如何使用MIMEMultipart()创建邮件的多部分内容,并通过SMTP发送邮件。你可以根据需求添加更多类型的内容。