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

Python中使用MIMEBase()创建带多个附件的邮件

发布时间:2024-01-17 01:32:45

在Python中,可以使用MIMEBase()来创建带有多个附件的邮件。MIMEBase()email模块的一个类,用于构建MIME消息。

以下是一个使用MIMEBase()创建带有多个附件的邮件的示例代码:

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

# 邮件发送方信息
sender = '你的邮箱地址'
password = '你的邮箱密码'

# 邮件接收方信息
receivers = ['接收方邮箱地址']

# 创建邮件对象
msg = MIMEMultipart()

# 添加邮件内容
msg.attach(MIMEText('这是一封带有多个附件的邮件。', 'plain'))

# 添加附件1
filepath1 = '附件1路径'
attachment1 = open(filepath1, 'rb')
part1 = MIMEBase('application', 'octet-stream')
part1.set_payload((attachment1).read())
encoders.encode_base64(part1)
part1.add_header('Content-Disposition', "attachment; filename= %s" % filepath1)
msg.attach(part1)

# 添加附件2
filepath2 = '附件2路径'
attachment2 = open(filepath2, 'rb')
part2 = MIMEBase('application', 'octet-stream')
part2.set_payload((attachment2).read())
encoders.encode_base64(part2)
part2.add_header('Content-Disposition', "attachment; filename= %s" % filepath2)
msg.attach(part2)

# 发送邮件
try:
    server = smtplib.SMTP('smtp.gmail.com', 587)  # 如果是其他邮箱,请替换为对应的SMTP服务器和端口
    server.starttls()
    server.login(sender, password)
    server.sendmail(sender, receivers, msg.as_string())
    server.quit()
    print("邮件发送成功")
except Exception as e:
    print("邮件发送失败:" + str(e))

在示例代码中:

1. 首先需要设置邮件发送方和接收方的信息。

2. 创建MIMEMultipart对象来封装邮件内容。

3. 添加邮件内容,可以使用MIMEText来添加文本内容。

4. 使用open函数打开附件文件,然后创建MIMEBase对象,并将附件内容添加到MIMEBase对象中。

5. 使用encoders.encode_base64函数对附件进行编码,并使用add_header方法设置附件的属性。

6. 使用attach方法将附件添加到邮件对象中。

7. 使用SMTP服务器登录发送邮件。

8. 发送邮件。

请注意,代码中的附件路径需要替换为实际的附件路径和文件名。另外,示例代码中使用的是Gmail的SMTP服务器,请根据自己使用的邮箱服务器进行相应修改。

这是一个简单的示例,你可以根据自己的需求进行修改和扩展。希望对你有帮助。