如何在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发送邮件。你可以根据需求添加更多类型的内容。
