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

Python中发送多个附件的email.mime.text用法介绍

发布时间:2024-01-11 10:39:27

在Python中,我们可以使用email.mime.text模块来创建并发送带有多个附件的电子邮件。

email.mime.text模块是email模块的一部分,它提供了一种创建和处理纯文本邮件的方法。它可以用来创建包含文本正文和多个附件的电子邮件。

下面是使用email.mime.text发送多个附件的一个简单示例:

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

# 设置发件人、收件人和邮件主题
from_addr = "sender@example.com"
to_addr = "recipient@example.com"
subject = "Sample Email with Attachments"

# 创建一个带有正文和多个附件的消息对象
msg = MIMEMultipart()
msg["From"] = from_addr
msg["To"] = to_addr
msg["Subject"] = subject

# 添加正文
body = "This is the body of the email."
msg.attach(MIMEText(body, "plain"))

# 添加多个附件
attachments = ["path/to/file1.txt", "path/to/file2.txt", "path/to/file3.txt"]

for attachment in attachments:
    with open(attachment, "rb") as file:
        # 创建一个MIMEApplication对象,表示一个二进制文件
        attachment_part = MIMEApplication(file.read())
        
        # 设置附件的Content-Disposition,包括文件名和MIME类型
        attachment_part.add_header(
            "Content-Disposition",
            'attachment',
            filename=attachment.split("/")[-1]
        )
        
        # 将附件添加到消息对象
        msg.attach(attachment_part)

# 连接到SMTP服务器并发送邮件
smtp_server = "smtp.example.com"
smtp_port = 587
smtp_username = "username"
smtp_password = "password"

with smtplib.SMTP(smtp_server, smtp_port) as smtp:
    smtp.starttls()
    smtp.login(smtp_username, smtp_password)
    smtp.send_message(msg)

在上面的示例中,我们首先导入了email.mime.multipartemail.mime.textemail.mime.application模块。然后,我们设置了发件人地址、收件人地址和电子邮件主题。

接下来,我们创建了一个MIMEMultipart对象,它代表了一个带有正文和多个附件的消息。我们使用MIMEText将正文添加到消息对象中。

然后,我们使用一个for循环遍历附件列表,并使用open()函数打开每个附件文件。然后,我们创建一个MIMEApplication对象,表示一个二进制文件,并将文件内容读取到该对象中。我们使用add_header()方法设置附件的Content-Disposition,并将附件添加到消息对象的附件列表中。

最后,我们通过创建一个SMTP对象并连接到SMTP服务器,使用starttls()函数启用TLS保护,使用login()函数登录到SMTP服务器,并使用send_message()函数发送消息。

需要注意的是,我们需要替换示例中的发件人地址、收件人地址、附件列表和SMTP服务器设置为实际的值,以确保示例代码能正常工作。

这是使用email.mime.text发送多个附件的一个简单示例。你可以根据自己的需求进行修改和调整,以满足特定的邮件发送需求。