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

在Python中使用email.encoders将邮件附件编码为Base64格式

发布时间:2023-12-27 18:18:44

在Python中使用email.encoders将邮件附件编码为Base64格式非常简单。下面是一个使用例子,可以将一个文件作为附件添加到邮件中,并将附件编码为Base64格式。

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

# 邮件发送方和接收方的信息
sender = "sender@example.com"
receiver = "receiver@example.com"

# 创建邮件对象
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = receiver
msg['Subject'] = "邮件主题"

# 读取附件文件
attachment_file = "attachment.jpg"
attachment = open(attachment_file, "rb")

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

# 将附件编码为Base64格式
encoders.encode_base64(part)

# 添加附件名称
part.add_header('Content-Disposition', "attachment; filename= %s" % attachment_file)

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

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

在上面的例子中,我们首先导入了必要的模块:smtplib用于发送邮件、MIMEMultipart和MIMEBase用于创建邮件和附件、encoders用于将附件编码为Base64格式。

接下来,我们创建了一个MIMEMultipart对象作为邮件容器,并设置了发件人、收件人和邮件主题。

然后,我们打开附件文件,并将文件读取为二进制格式。然后,我们创建了一个MIMEBase对象,并将附件的二进制数据设置为其payload。

接着,我们使用encoders模块的encode_base64函数将附件编码为Base64格式。

最后,我们使用add_header函数添加了附件的名称和文件名,并将该附件对象附加到邮件中。

最后,我们使用smtplib模块登录到SMTP服务器,发送邮件并退出。

这是一个基本的例子,你可以根据自己的需求进行修改和扩展。注意,你需要替换相应的发件人、收件人、附件文件名、SMTP服务器地址、端口、发件人邮箱和密码等信息。