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

Python中如何处理email.mime.multipart中的多个附件

发布时间:2023-12-14 11:51:15

在Python中,我们可以使用email.mime.multipart模块来处理邮件中的多个附件。以下是一个例子,展示了如何创建一个包含多个附件的邮件。

首先,我们需要导入相应的模块并创建一个MIMEMultipart对象:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders

msg = MIMEMultipart()

然后,我们需要设置邮件的发送者、接收者、主题等基本信息,并将其添加到MIMEMultipart对象中:

msg['From'] = 'sender@example.com'
msg['To'] = 'receiver@example.com'
msg['Subject'] = 'Multiple Attachments'

接下来,我们需要将附件添加到邮件中。假设我们有两个附件file1.txtfile2.txt

file_path1 = '/path/to/file1.txt'
file_path2 = '/path/to/file2.txt'

attachment1 = open(file_path1, 'rb')
attachment2 = open(file_path2, 'rb')

part1 = MIMEBase('application', 'octet-stream')
part1.set_payload(attachment1.read())
encoders.encode_base64(part1)
part1.add_header('Content-Disposition', f"attachment; filename= {file_path1}")

part2 = MIMEBase('application', 'octet-stream')
part2.set_payload(attachment2.read())
encoders.encode_base64(part2)
part2.add_header('Content-Disposition', f"attachment; filename= {file_path2}")

注意,我们需要对附件进行编码,并设置正确的Content-Disposition头信息。

最后,我们将附件添加到MIMEMultipart对象中:

msg.attach(part1)
msg.attach(part2)

至此,我们已经创建好了一个包含多个附件的邮件。

最后,我们可以使用smtplib模块将邮件发送出去:

smtp_server = 'smtp.example.com'
smtp_port = 587
smtp_username = 'your_username'
smtp_password = 'your_password'

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

以上是一个处理email.mime.multipart中的多个附件的例子。在实际中,你可以根据自己的需求,添加更多的附件和设置更多的邮件信息。