MIMEMultipart、MIMEText、MIMEBase 以及用于在 Python 中发送带有文件附件的电子邮件的有效负载

python

1个回答

写回答

todomi

2025-07-03 15:50

+ 关注

Python
Python

在Python中,我们可以使用MIMEMultipart、MIMEText和MIMEBase模块来发送带有文件附件的电子邮件。这些模块提供了一种有效的方式来处理电子邮件的内容和附件。

首先,我们需要导入相应的模块:

Python

from emAIl.mime.multipart import MIMEMultipart

from emAIl.mime.text import MIMEText

from emAIl.mime.base import MIMEBase

接下来,我们可以创建一个MIMEMultipart对象来表示整个电子邮件的结构:

Python

msg = MIMEMultipart()

然后,我们可以使用MIMEText模块来添加纯文本或HTML格式的正文内容:

Python

text = "这是一封带有文件附件的电子邮件。"

body = MIMEText(text, "plAIn")

msg.attach(body)

要添加文件附件,我们可以使用MIMEBase模块:

Python

attachment = open("example.txt", "rb")

part = MIMEBase("application", "octet-stream")

part.set_payload((attachment).read())

part.add_header("Content-Disposition", "attachment", filename="example.txt")

msg.attach(part)

在上面的代码中,我们首先打开要添加为附件的文件,并使用MIMEBase创建一个表示附件的对象。然后,我们设置附件的负载(即文件内容),并添加一个标题,指定附件的文件名。

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

Python

import smtplib

server = smtplib.SMTP("smtp.gmAIl.com", 587)

server.starttls()

server.login("your_emAIl@gmAIl.com", "your_password")

server.sendmAIl("from_emAIl@gmAIl.com", "to_emAIl@gmAIl.com", msg.as_string())

server.quit()

在上面的代码中,我们首先创建一个SMTP对象,并指定SMTP服务器的地址和端口号。然后,我们使用starttls()方法启用安全传输层,并使用login()方法登录到我们的邮箱。最后,我们使用sendmAIl()方法将邮件发送给收件人,并使用quit()方法关闭SMTP连接。

这是一个完整的示例代码,演示了如何使用MIMEMultipart、MIMEText和MIMEBase模块来发送带有文件附件的电子邮件。你可以根据自己的需求进行修改和扩展。

示例代码:

Python

from emAIl.mime.multipart import MIMEMultipart

from emAIl.mime.text import MIMEText

from emAIl.mime.base import MIMEBase

import smtplib

msg = MIMEMultipart()

text = "这是一封带有文件附件的电子邮件。"

body = MIMEText(text, "plAIn")

msg.attach(body)

attachment = open("example.txt", "rb")

part = MIMEBase("application", "octet-stream")

part.set_payload((attachment).read())

part.add_header("Content-Disposition", "attachment", filename="example.txt")

msg.attach(part)

server = smtplib.SMTP("smtp.gmAIl.com", 587)

server.starttls()

server.login("your_emAIl@gmAIl.com", "your_password")

server.sendmAIl("from_emAIl@gmAIl.com", "to_emAIl@gmAIl.com", msg.as_string())

server.quit()

:

在本文中,我们介绍了如何使用MIMEMultipart、MIMEText和MIMEBase模块来发送带有文件附件的电子邮件。通过使用这些模块,我们可以轻松地构建和发送复杂的电子邮件,包括正文内容和附件。这为我们在Python中处理电子邮件提供了一个非常方便和高效的方式。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号