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

Python中email.mime.multipart模块的使用方法及示例

发布时间:2023-12-26 08:28:58

email.mime.multipart模块是Python中用于创建和解析多部分电子邮件的模块。它允许将多个不同类型的内容(如文本、图像、附件等)组合成一封电子邮件。

使用email.mime.multipart模块,我们可以创建一个包含多个MIME部分的消息。每个部分都可以是文本、HTML、图像或附件。

下面是使用email.mime.multipart模块创建一个包含文本和附件的电子邮件的示例代码:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

# 创建一个多部分MIME消息
msg = MIMEMultipart()

# 设置邮件的发送者、接收者和主题
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'
msg['Subject'] = 'Test Email with Attachment'

# 添加文本内容
text = '''
Hello,

This is a test email with attachment.

Regards,
Sender
'''
msg.attach(MIMEText(text, 'plain'))

# 添加附件
filename = 'test_attachment.txt'
attachment = open(filename, 'rb')

part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)

part.add_header('Content-Disposition', "attachment; filename= %s" % filename)

msg.attach(part)

# 发送邮件
server = smtplib.SMTP('smtp.example.com', 587)
server.starttls()
server.login('sender@example.com', 'password')
server.sendmail('sender@example.com', 'recipient@example.com', msg.as_string())
server.quit()

在这个示例中,我们使用了email.mime.multipart模块中的MIMEMultipart类创建了一个多部分MIME消息。然后,我们使用MIMEText类添加了一段文本内容,并使用MIMEBase类添加了一个附件。最后,我们将消息转换为字符串,并使用smtplib模块发送邮件。

需要注意的是,示例代码中的邮箱服务器地址、端口号、发送者邮箱和密码等需要根据实际情况进行相应的修改。

这个示例演示了如何使用email.mime.multipart模块创建一个包含文本和附件的电子邮件并发送。你可以根据自己的需要进一步定制消息的内容和格式。