Python中使用MIMEBase()创建带消息体的邮件示例
发布时间:2024-01-17 01:34:56
下面是一个使用Python中的MIMEBase()模块创建带有消息体的邮件示例,以及一个使用示例。
# 引入需要的模块
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
# 设置邮件参数
from_email = "sender@example.com"
to_email = "receiver@example.com"
subject = "带消息体的邮件"
message = "这是一封带有消息体的邮件。"
# 创建一个带有消息体的邮件对象
msg = MIMEMultipart()
msg["From"] = from_email
msg["To"] = to_email
msg["Subject"] = subject
# 添加消息体
msg.attach(MIMEText(message, "plain"))
# 添加附件
filename = "example.txt"
attachment = open(filename, "rb")
# 创建附件对象
part = MIMEBase("application", "octet-stream")
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header("Content-Disposition", "attachment; filename= %s" % filename)
# 添加附件到邮件对象
msg.attach(part)
# 发送邮件
try:
server = smtplib.SMTP('smtp.example.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login(from_email, "password")
server.sendmail(from_email, to_email, msg.as_string())
server.close()
print("邮件发送成功!")
except Exception as e:
print("邮件发送失败:", str(e))
上述代码中,我们首先引入需要的模块,然后设置邮件的相关参数,包括发件人、收件人、主题和消息体。接下来,我们创建一个MIMEMultipart()对象作为邮件对象,并将发件人、收件人和主题添加到邮件对象中。
然后,我们使用MIMEText()将消息体添加到邮件对象中,并使用attach()方法将其附加到邮件上。
接着,我们打开要附加的文件,并创建一个MIMEBase()对象作为附件对象。我们使用set_payload()方法将文件内容添加到附件对象中,并使用encode_base64()方法对附件进行编码。最后,我们使用add_header()方法设置附件的文件名和类型,并将附件对象添加到邮件上。
最后,我们使用SMTP()方法连接到SMTP服务器,进行身份验证,使用sendmail()方法发送邮件,并关闭连接。
注意:在使用上述代码时,需要将from_email和to_email替换为实际的发件人和收件人的电子邮件地址,将smtp.example.com替换为相应的SMTP服务器地址,并将example.txt替换为要附加的实际文件名。
这个例子展示了如何使用MIMEBase()模块创建带有消息体的邮件,并附加一个文件作为附件。你可以根据需求调整邮件的其他参数和附件。
