在Python中通过MIMEBase()发送带压缩文件附件的邮件
发布时间:2024-01-17 01:29:38
在Python中,可以使用MIMEBase()类来发送带有压缩文件附件的邮件。MIMEBase()是email.mime模块中的一种基本邮件类型,可以用于创建具有不同类型媒体内容的邮件。
下面是一个使用MIMEBase()发送带有压缩文件附件的邮件的例子:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
def send_email_with_attachment():
# 设置邮件信息
email = MIMEMultipart()
email['From'] = 'sender@example.com'
email['To'] = 'recipient@example.com'
email['Subject'] = 'Email with compressed file attachment'
# 添加附件
attachment = MIMEBase('application', 'zip') # 设置附件的MIME类型为zip文件
with open('compressed_file.zip', 'rb') as file:
attachment.set_payload(file.read())
encoders.encode_base64(attachment) # 对附件进行base64编码
attachment.add_header('Content-Disposition', 'attachment', filename='compressed_file.zip') # 设置附件的文件名
email.attach(attachment)
# 发送邮件
server = smtplib.SMTP('smtp.example.com', 587) # 设置SMTP服务器和端口
server.starttls() # 开启TLS加密
server.login('sender@example.com', 'password') # 登录邮箱
server.send_message(email) # 发送邮件
server.quit() # 退出SMTP服务器
在上面的例子中,首先创建了一个MIMEMultipart对象email,用于存放邮件的各个部分。然后设置发件人、收件人和主题。接下来,创建一个MIMEBase对象attachment,类型为application/zip,并使用open()函数打开要发送的压缩文件,将文件内容设置为attachment对象的payload。然后通过encoders.encode_base64()将文件内容进行base64编码,并使用add_header()方法设置附件的文件名。最后,将附件添加到email对象中,即可发送带有压缩文件附件的邮件。
需要注意的是,邮件服务器的SMTP地址和端口需要替换为实际使用的地址和端口,发件人邮箱和密码也需要替换为实际的邮箱和密码。
通过以上的例子,你可以在Python中使用MIMEBase()发送带有压缩文件附件的邮件。根据需要,你也可以更改附件的MIME类型和文件名,以适应不同的文件类型。
