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

使用email.MIMEBase模块将文件作为附件添加到邮件中

发布时间:2023-12-14 03:33:45

email.MIMEBase模块是Python中的电子邮件处理模块,用于将文件作为附件添加到邮件中。它提供了MIME格式的支持,能够处理各种类型的文件。

以下是一个使用email.MIMEBase模块将文件添加为附件的例子:

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

# 配置邮箱账号和密码
sender_email = "sender@example.com"
sender_password = "password"
receiver_email = "receiver@example.com"

# 创建一个MIMEMultipart对象
msg = MIMEMultipart()

# 设置邮件主题、发件人和收件人
msg["Subject"] = "附件测试"
msg["From"] = sender_email
msg["To"] = receiver_email

# 添加文本内容
msg.attach(MIMEText("这是一封带有附件的邮件", "plain"))

# 添加文件附件
filename = "example.txt"
attachment = open(filename, "rb")

# 创建MIMEBase对象
part = MIMEBase("application", "octet-stream")
part.set_payload(attachment.read())

# 对附件进行编码
encoders.encode_base64(part)
part.add_header("Content-Disposition", f"attachment; filename={filename}")

# 将附件添加到邮件中
msg.attach(part)

# 发送邮件
with smtplib.SMTP("smtp.gmail.com", 587) as smtp:
    smtp.starttls()
    smtp.login(sender_email, sender_password)
    smtp.send_message(msg)

在上面的例子中,我们首先导入所需的模块,然后设置发件人和收件人的邮箱账号和密码。

然后,我们创建一个MIMEMultipart对象,用于存储邮件的各个部分,包括主题、发件人、收件人和邮件内容。使用MIMEText对象添加纯文本内容。

接下来,我们打开要添加为附件的文件,并将其读取为二进制数据。然后,我们创建一个MIMEBase对象,将文件内容设置为其payload(负载),并使用encoders模块对附件进行编码。最后,我们将附件的内容类型和文件名添加到其头部,并将附件添加到邮件中。

最后一步是发送邮件。我们使用smtplib.SMTP对象连接到SMTP服务器,并使用starttls()方法启用TLS加密连接。然后,我们使用login()方法登录到发件人的邮箱,并使用send_message()方法发送邮件。

以上就是使用email.MIMEBase模块将文件添加为附件的一个例子。你可以根据自己的需求修改代码,并配置自己的发件人和收件人邮箱账号和密码。