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

Python发送带附件的电子邮件(使用email.mime.text)

发布时间:2023-12-23 09:54:23

发送带附件的电子邮件是通过Python的smtplib库来实现的。在发送邮件之前,我们需要先构建邮件内容,并将附件添加到邮件中。

以下是使用email和smtplib库发送带附件的电子邮件的代码示例:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication

# 邮件参数
smtp_server = "smtp.example.com"
smtp_port = 587
smtp_username = "your_username"
smtp_password = "your_password"
sender_email = "sender@example.com"
receiver_email = "receiver@example.com"
subject = "邮件主题"

# 创建一个带附件的邮件对象
msg = MIMEMultipart()
msg["From"] = sender_email
msg["To"] = receiver_email
msg["Subject"] = subject

# 添加邮件正文
body = "这是一封带附件的邮件。"
msg.attach(MIMEText(body, "plain"))

# 添加附件
attachment_path = "/path/to/attachment/filename.txt"
attachment = MIMEApplication(open(attachment_path, "rb").read())
attachment.add_header("Content-Disposition", "attachment", filename="filename.txt")
msg.attach(attachment)

# 发送邮件
try:
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()
    server.login(smtp_username, smtp_password)
    server.send_message(msg)
    server.quit()
    print("邮件发送成功!")
except Exception as e:
    print("邮件发送失败:" + str(e))

在上面的代码中,我们首先导入所需的库。然后,我们设置邮件参数,例如SMTP服务器、端口、用户名、密码、发件人、收件人和主题。

接下来,我们创建一个 MIMEMultipart 对象,它允许我们同时发送文本和附件。我们将发送的邮件构建为多部分,其中一部分是文本(使用 MIMEText 类),另一部分是附件(使用 MIMEApplication 类)。

在添加邮件正文和附件之后,我们使用 smtplib.SMTP 类连接到SMTP服务器,然后使用 starttls() 方法启用TLS加密。我们通过调用 login() 方法使用指定的用户名和密码进行身份验证。

最后,我们使用 send_message() 方法将邮件发送给收件人,并通过调用 quit() 方法断开与SMTP服务器的连接。

请注意,上面的代码中的 attachment_path 变量应设置为您要发送的附件的完整路径,例如 /path/to/attachment/filename.txt。此外,确保您的SMTP服务器和端口号正确设置,并使用有效的用户名和密码进行身份验证。

希望以上代码示例能够帮助您发送带附件的电子邮件。