Python 发送邮件添加附件

在现代社会中,电子邮件是人们沟通、传递信息的重要工具之一。Python作为一门功能强大的编程语言,提供了多种库和模块来处理邮件相关的操作。本文将介绍如何使用Python发送邮件并添加附件。

为什么需要发送带附件的邮件?

在某些场景中,我们需要发送一封带有附件的电子邮件。这些附件可以是文档、图片、音频、视频等各种类型的文件。通过添加附件,我们可以更方便地与收件人共享信息,并确保信息的完整性和准确性。

使用Python发送邮件

Python提供了smtplib库用于发送邮件,email库用于创建和处理邮件。同时,我们还需要一个有效的SMTP服务器和相应的帐户信息。

首先,我们需要导入相关的库和模块。

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders

接下来,我们需要设置发送邮件的相关信息,包括发件人、收件人、主题、正文等。

sender_email = "sender@example.com"
receiver_email = "receiver@example.com"
subject = "附件测试邮件"
body = "这是一个带附件的测试邮件。"

然后,我们需要创建一个MIMEMultipart对象,并将正文添加到该对象中。

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

接下来,我们需要读取要发送的附件文件,并将其添加到邮件中。

attachment_filename = "example.jpg"
attachment = open(attachment_filename, "rb")

part = MIMEBase("application", "octet-stream")
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header("Content-Disposition", "attachment; filename= %s" % attachment_filename)

msg.attach(part)

然后,我们需要设置邮件的发件人、收件人和主题。

msg["From"] = sender_email
msg["To"] = receiver_email
msg["Subject"] = subject

最后,我们需要连接到SMTP服务器,并使用SMTP协议发送邮件。

smtp_server = "smtp.example.com"
smtp_port = 587
smtp_username = "username"
smtp_password = "password"

with smtplib.SMTP(smtp_server, smtp_port) as server:
    server.starttls()
    server.login(smtp_username, smtp_password)
    server.send_message(msg)

以上就是使用Python发送带附件的邮件的完整代码示例。

结语

通过使用Python的smtplibemail库,我们可以方便地发送带有附件的电子邮件。首先,我们需要设置发送邮件的相关信息,并创建一个MIMEMultipart对象,然后将正文和附件添加到该对象中。最后,使用SMTP协议连接到SMTP服务器,并发送邮件。

希望本文能帮助你了解如何使用Python发送带附件的邮件,并在实际应用中起到一定的作用。

参考资料

  • [Python官方文档](
  • [Python smtplib文档](
  • [Python email文档](