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

在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类型和文件名,以适应不同的文件类型。