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服务器,请根据自己使用的邮箱服务器进行相应修改。
这是一个简单的示例,你可以根据自己的需求进行修改和扩展。希望对你有帮助。
