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

使用email.mime.text发送带有附件的纯文本电子邮件-Python

发布时间:2023-12-23 09:55:04

使用Python的email.mime.text模块发送带有附件的纯文本电子邮件非常简单。下面是一个使用例子:

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

# 设置发件人、收件人和主题
from_addr = 'from@example.com'
to_addr = 'to@example.com'
subject = '带附件的纯文本邮件'

# 创建一个多部分消息对象,用于组合邮件正文和附件
msg = MIMEMultipart()

# 添加邮件正文内容
body = MIMEText('这是一封带有附件的纯文本邮件。')
msg.attach(body)

# 添加邮件附件
filename = 'example.txt'
attachment = open(filename, 'rb')

# 创建附件对象
part = MIMEBase('application', 'octet-stream')
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment', filename=filename)

# 将附件添加到多部分消息对象中
msg.attach(part)

# 设置邮件的发件人、收件人和主题
msg['From'] = from_addr
msg['To'] = to_addr
msg['Subject'] = subject

# 使用SMTP服务器发送邮件
smtp_server = 'smtp.example.com'
smtp_port = 587
smtp_username = 'your_username'
smtp_password = 'your_password'

try:
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()
    server.login(smtp_username, smtp_password)
    server.sendmail(from_addr, to_addr, msg.as_string())
    server.quit()
    print('邮件发送成功')
except Exception as e:
    print('邮件发送失败:', str(e))

在上面的例子中,我们首先导入了必要的模块。然后设置了发件人、收件人和邮件主题。然后创建了一个多部分消息对象msg,并将邮件正文内容添加到其中。接下来,打开并读取要发送的附件文件,并创建一个附件对象part,设置其类型为'application/octet-stream',并设置附件的文件名。最后,将附件添加到多部分消息对象msg中。

接下来,我们设置了邮件的发件人、收件人和主题,并使用SMTP服务器发送邮件。需要将smtp_serversmtp_portsmtp_usernamesmtp_password替换为您自己的SMTP服务器和凭据。

最后,我们使用try-except块来捕获可能发生的异常,并打印相应的错误信息或成功消息。

希望以上例子对你有所帮助!