使用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类添加和发送附件的示例。使用这个类可以方便地将文件作为附件添加到邮件中,并发送邮件。
