使用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_server、smtp_port、smtp_username和smtp_password替换为您自己的SMTP服务器和凭据。
最后,我们使用try-except块来捕获可能发生的异常,并打印相应的错误信息或成功消息。
希望以上例子对你有所帮助!
