Python中使用MIMEMultipart()发送带有Markdown文件附件的邮件
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
def send_email():
# 邮件发送方的地址和密码
sender_email = "sender@example.com"
sender_password = "password"
# 邮件接收方的地址
receiver_email = "receiver@example.com"
# 创建一个带有附件的邮件实例
message = MIMEMultipart()
# 设置邮件主题和发件人/收件人
message["Subject"] = "Markdown文件附件示例"
message["From"] = sender_email
message["To"] = receiver_email
# 创建邮件正文,并添加到邮件实例中
text = "这是一封带有Markdown文件附件的邮件示例"
message.attach(MIMEText(text, "plain"))
# 打开Markdown文件,并将其作为附件添加到邮件实例中
with open("example.md", "rb") as file:
part = MIMEBase("application", "octet-stream")
part.set_payload(file.read())
encoders.encode_base64(part)
part.add_header("Content-Disposition", "attachment", filename="example.md")
message.attach(part)
# 使用SMTP发送邮件
with smtplib.SMTP("smtp.example.com", 587) as smtp:
smtp.starttls()
smtp.login(sender_email, sender_password)
smtp.send_message(message)
print("邮件发送成功")
# 调用发送邮件函数
send_email()
在上面的代码例子中,首先需要设置发件人的邮件地址和密码,以及收件人的邮件地址。然后通过MIMEMultipart()创建一个带有附件的邮件实例。将邮件主题、发件人、收件人等信息添加到邮件实例中。接下来创建邮件正文,并将其添加到邮件实例中。打开Markdown文件并将其作为附件添加到邮件实例中,需要设置附件的类型、编码等信息。最后使用SMTP发送邮件,需要设置SMTP服务器地址和端口,使用starttls()方法启用TLS加密,使用login()方法登录发件人的邮件账户,使用send_message()方法发送邮件。
在调用发送邮件函数之前,需要将发件人的邮件地址、密码、收件人的邮件地址设置为正确的值,并将Markdown文件的文件名设置为正确的值。
