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

Python中如何使用MIMEBase()发送带文本文件附件的邮件

发布时间:2024-01-17 01:35:55

在Python中发送带文本文件附件的邮件,可以使用email模块中的MIMEBase类。MIMEBase类是一个MIME基础类,用于创建不同类型的MIME消息部分。下面是一个例子,演示如何发送带文本文件附件的邮件。

首先,我们需要导入email模块中的一些类和函数:

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 = "发送方邮箱地址"
receiver = "接收方邮箱地址"
subject = "邮件主题"
body = "邮件正文"

msg = MIMEMultipart()
msg["From"] = sender
msg["To"] = receiver
msg["Subject"] = subject

msg.attach(MIMEText(body, "plain"))

接下来,我们需要添加附件到邮件中。首先,我们需要打开要发送的附件文件,并读取其内容:

attachment_path = "附件文件路径"
attachment_name = "附件文件名"

attachment = open(attachment_path, "rb")

part = MIMEBase("application", "octet-stream")
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header("Content-Disposition", f"attachment; filename= {attachment_name}")
msg.attach(part)

然后,我们需要将附件添加到邮件的主体部分。最后,我们可以使用SMTP客户端来连接邮箱服务器,并发送邮件:

smtp_server = "邮箱服务器地址"
smtp_port = "邮箱服务器端口"

server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()

email_user = "邮箱用户名"
email_password = "邮箱密码"

server.login(email_user, email_password)
server.send_message(msg)
server.quit()

这是一个完整的例子,演示了如何使用MIMEBase类发送带文本文件附件的邮件。可以根据自己的实际需求,替换相应的邮箱地址、邮箱服务器信息、附件文件路径、附件文件名等信息。