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

在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替换为您自己的附件文件名。

希望这个例子能对您有所帮助!