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

Python中使用email.message模块发送带有附件的电子邮件

发布时间:2023-12-27 17:05:59

在Python中,我们可以使用email.message模块发送带有附件的电子邮件。以下是一个使用例子:

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

# 创建EmailMessage对象
msg = EmailMessage()

# 设置发件人、收件人和主题
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'
msg['Subject'] = 'Example Email with Attachment'

# 添加文本内容
msg.set_content('This is the body of the email.')

# 创建MIMEMultipart对象,用于处理附件
msg.attach(MIMEMultipart())

# 添加附件
with open('example.txt', 'rb') as file:
    attachment = MIMEText(file.read(), 'plain')
    attachment.add_header('Content-Disposition', 'attachment', filename='example.txt')
    msg.attach(attachment)

# 发送邮件
with smtplib.SMTP('smtp.example.com', 587) as smtp:
    smtp.login('username', 'password')
    smtp.send_message(msg)

在这个例子中,我们首先导入了所需的模块:smtplib用于发送邮件,EmailMessage用于创建电子邮件对象,MIMEMultipart用于处理附件,MIMEText用于创建文本附件,MIMEImage用于创建图像附件。

然后,我们创建了一个EmailMessage对象,并设置了发件人、收件人和主题。我们可以使用msg.set_content方法来添加邮件的正文内容。

接下来,我们创建了一个新的MIMEMultipart对象,并将其添加到EmailMessage对象中。这是为了处理邮件的附件。

通过打开要添加为附件的文件,我们将文件内容读取为字符串,并使用MIMEText来创建一个文本附件。然后,我们为附件设置了Content-Disposition标头,以便在接收邮件时正确显示附件的文件名。

最后,我们使用smtplib.SMTP对象连接到SMTP服务器,并使用smtp.login方法进行身份验证。然后,我们使用smtp.send_message方法发送电子邮件。

这就是使用email.message模块发送带有附件的电子邮件的一个例子。使用这个例子作为起点,你可以根据自己的需求进一步定制电子邮件的内容和附件。