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

Python中使用MIMEMultipart()发送带有Markdown文件附件的邮件

发布时间:2023-12-25 18:33:54

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文件的文件名设置为正确的值。