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

Python实例教程:使用email.mime.multipartMIMEMultipart()模块创建多部分邮件

发布时间:2023-12-26 08:32:20

在Python中,我们可以使用email.mime.multipart模块创建多部分邮件。多部分邮件是指由多个不同类型的数据组成的邮件,例如文本、HTML、附件等。

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

from email.mime.multipart import MIMEMultipart

接下来,我们可以创建一个MIMEMultipart对象:

msg = MIMEMultipart()

MIMEMultipart对象可以包含多个MIME子部分,这些子部分可以是文本、HTML、附件等。我们可以使用add_header()方法给邮件添加头部信息,例如发件人、收件人、主题等:

msg.add_header('From', 'sender@example.com')
msg.add_header('To', 'recipient@example.com')
msg.add_header('Subject', 'This is a test email')

如果我们要添加一个文本部分,可以使用email.mime.text模块中的MIMEText对象,并将其作为MIMEMultipart对象的一个子部分添加进去:

from email.mime.text import MIMEText

text_part = MIMEText('This is the text part of the email', 'plain')
msg.attach(text_part)

在这个例子中,我们创建了一个简单的文本部分,并将其添加到了MIMEMultipart对象中。

如果我们要添加一个HTML部分,可以使用email.mime.text模块中的MIMEText对象,并将其作为MIMEMultipart对象的一个子部分添加进去:

html_part = MIMEText('<h1>This is the HTML part of the email</h1>', 'html')
msg.attach(html_part)

在这个例子中,我们创建了一个简单的HTML部分,并将其添加到了MIMEMultipart对象中。

如果我们要添加一个附件,可以使用email.mime.application模块中的MIMEApplication对象,并将其作为MIMEMultipart对象的一个子部分添加进去:

from email.mime.application import MIMEApplication

with open('example.pdf', 'rb') as f:
    attachment = MIMEApplication(f.read(), 'pdf')
    attachment.add_header('Content-Disposition', 'attachment', filename='example.pdf')
    msg.attach(attachment)

在这个例子中,我们打开一个名为example.pdf的文件,并将其作为附件添加到了MIMEMultipart对象中。

最后,我们可以使用smtplib模块将邮件发送出去:

import smtplib

server = smtplib.SMTP('smtp.example.com', 587)
server.login('username', 'password')
server.send_message(msg)
server.quit()

在这个例子中,我们使用SMTP服务器发送邮件。你需要将'smtp.example.com'替换为你的SMTP服务器地址,将'username'替换为你的用户名,将'password'替换为你的密码。

这就是使用email.mime.multipart模块创建多部分邮件的教程和示例。你可以根据自己的需求,向MIMEMultipart对象添加不同类型的子部分,并使用smtplib模块将邮件发送出去。希望对你有帮助!