在Python中使用emailMIMEText添加附件到电子邮件
发布时间:2023-12-23 09:52:25
在Python中,我们可以使用email库中的MIMEText类来创建并发送带有附件的电子邮件。以下是一个使用例子,说明如何使用email.mime.text.MIMEText添加附件到电子邮件:
首先,我们需要导入相应的库:
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 = 'your_email@gmail.com' receiver = 'recipient_email@gmail.com' subject = 'Email with attachment' # 创建一个包含发件人、收件人、主题的MIMEMultipart对象 msg = MIMEMultipart() msg['From'] = sender msg['To'] = receiver msg['Subject'] = subject
然后,我们需要读取并添加附件到邮件中。首先,我们可以创建一个MIMEBase对象来表示附件。在此例中,我们将添加一个名为attachment.txt的文本文件作为附件:
# 读取附件文件
attachment_filename = 'attachment.txt'
attachment = open(attachment_filename, 'rb')
# 创建一个MIMEBase对象来表示附件
mime = MIMEBase('text', 'plain')
mime.set_payload((attachment).read())
encoders.encode_base64(mime)
mime.add_header('Content-Disposition', 'attachment', filename=attachment_filename)
# 添加附件到邮件中
msg.attach(mime)
最后,我们需要将邮件发送出去:
# SMTP服务器设置
smtp_server = 'smtp.gmail.com'
smtp_port = 587
# 登录并发送邮件
try:
smtp_obj = smtplib.SMTP(smtp_server, smtp_port)
smtp_obj.starttls()
smtp_obj.login(sender, 'your_password')
smtp_obj.sendmail(sender, receiver, msg.as_string())
smtp_obj.quit()
print('Email sent successfully')
except Exception as e:
print('Error: ', e)
在上面的代码中,我们使用了Gmail的SMTP服务器和端口进行邮件发送。请确保替换为您自己的发件人地址、收件人地址和密码。
此外,您还需要将attachment.txt替换为您自己的附件文件名。
希望这个例子能对您有所帮助!
