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

使用email.mime.baseMIMEBase()实现邮件附件的添加和发送

发布时间:2024-01-04 05:37:44

email.mime.base.MIMEBase类是Python中email模块的一个基类,用于创建和处理MIME类型的邮件。它提供了添加附件的功能,可以将文件作为附件添加到邮件中,并发送邮件。

下面是一个使用email.mime.base.MIMEBase类添加和发送附件的示例:

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

# 创建一个带附件的邮件对象
msg = MIMEMultipart()

# 设置邮件的基本信息
msg['From'] = "sender@gmail.com"
msg['To'] = "receiver@gmail.com"
msg['Subject'] = "带附件的邮件"

# 添加附件
attachment = open("path_to_file", "rb")  # 打开要添加的文件,以二进制读取模式
part = MIMEBase('application', 'octet-stream')  # 创建一个附件对象
part.set_payload((attachment).read())  # 将文件内容添加到附件对象中
encoders.encode_base64(part)  # 对附件进行Base64编码
part.add_header('Content-Disposition', "attachment; filename=filename")  # 设置附件的文件名

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

# 发送邮件
server = smtplib.SMTP('smtp.gmail.com', 587)  # 连接SMTP服务器
server.starttls()  # 开启TLS加密
server.login("sender@gmail.com", "password")  # 登录到邮箱账号
server.sendmail(msg['From'], msg['To'], msg.as_string())  # 发送邮件
server.quit()  # 断开与服务器的连接

在上面的代码中,首先创建了一个MIMEMultipart对象msg,用于存储邮件的各种信息。然后,设置了邮件的发件人、收件人和主题。

接下来,在添加附件的部分,首先使用open函数打开要添加的文件,设置以二进制读取模式打开。然后,创建一个MIMEBase对象part,用于表示附件。使用set_payload方法将文件的内容添加到附件对象中。接着,使用encoders.encode_base64方法对附件进行Base64编码,保证在传输过程中不会出现乱码。最后,使用add_header方法设置附件的文件名。

将附件对象添加到邮件对象中,使用attach方法。然后,通过SMTP协议连接到邮件服务器,开启TLS加密,并使用login方法登录到发件人的邮箱账号。

最后,使用sendmail方法发送邮件,并调用quit方法断开与邮件服务器的连接。

注意:在代码中的path_to_file和filename需要根据实际情况进行替换。path_to_file表示要发送的附件文件的路径,filename表示设置的附件文件名。

以上就是使用email.mime.base.MIMEBase类添加和发送附件的示例。使用这个类可以方便地将文件作为附件添加到邮件中,并发送邮件。