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

使用email.mime.application模块在Python中发送带有压缩文件附件的邮件

发布时间:2024-01-02 02:01:37

以下是使用email.mime.application模块在Python中发送带有压缩文件附件的邮件的示例代码:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication

# 邮件发送方的信息
sender_email = "sender@example.com"
sender_password = "password"

# 邮件接收方的信息
receiver_email = "receiver@example.com"

# 创建一个带有附件的邮件对象
msg = MIMEMultipart()
msg["From"] = sender_email
msg["To"] = receiver_email
msg["Subject"] = "带有压缩文件附件的邮件"

# 添加邮件正文
message = "这是一封带有压缩文件附件的测试邮件。"
msg.attach(MIMEText(message, "plain"))

# 添加压缩文件附件
zip_file_path = "/path/to/zipfile.zip"
with open(zip_file_path, "rb") as file:
    zip_attachment = MIMEApplication(file.read(), "zip")
    zip_attachment.add_header("Content-Disposition", "attachment", filename="compressed_file.zip")
    msg.attach(zip_attachment)

# 发送邮件
try:
    with smtplib.SMTP("smtp.example.com", 587) as server:
        server.starttls()
        server.login(sender_email, sender_password)
        server.send_message(msg)
    print("邮件发送成功")
except Exception as e:
    print("邮件发送失败:", str(e))

在上述代码中,需要将sender_emailsender_password替换为实际用于发送邮件的邮箱地址和密码。同样,也需要将receiver_email替换为实际的接收方邮箱地址。在附件部分,将zip_file_path替换为要添加为附件的压缩文件的路径。

邮件正文部分使用了MIMEText类来添加纯文本内容,可以根据需要进行更改。附件部分使用了MIMEApplication类来读取压缩文件的内容,并设置Content-Disposition头来指定附件的文件名。

在SMTP连接部分,需要将SMTP服务器的主机名和端口号替换为实际的SMTP服务器的设置。通过starttls()方法启用TLS加密,并使用login()方法进行身份验证。

最后,通过send_message()方法发送邮件。如果发送成功,将打印"邮件发送成功";如果发送失败,将打印"邮件发送失败:"并附上错误信息。