在Python中使用MIMEBase()发送带Excel文件附件的邮件
发布时间:2024-01-17 01:35:28
在Python中,可以使用MIMEBase来创建包含Excel文件附件的邮件。
下面是一个使用MIMEBase发送带Excel文件附件的邮件的例子:
import smtplib
import email.utils
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email import encoders
# 你的电子邮件帐户信息
from_email = 'your_email@example.com'
from_password = 'your_password'
# 收件人和主题
to_email = 'recipient_email@example.com'
subject = '带Excel附件的邮件示例'
# 创建一个多部分邮件对象
msg = MIMEMultipart()
msg['From'] = email.utils.formataddr(('Sender Name', from_email))
msg['To'] = to_email
msg['Subject'] = subject
# 邮件正文
body = MIMEText('这是一封带有Excel附件的邮件示例')
msg.attach(body)
# 附件路径
file_path = '/path/to/excel_file.xlsx'
# 打开并读取Excel文件
with open(file_path, 'rb') as f:
# 创建附件对象
attachment = MIMEBase('application', 'octet-stream')
attachment.set_payload(f.read())
# 将附件编码
encoders.encode_base64(attachment)
# 添加附件的头信息
attachment.add_header('Content-Disposition', f'attachment; filename="{file_path}"')
# 将附件添加到邮件
msg.attach(attachment)
try:
# 连接到SMTP服务器
server = smtplib.SMTP('smtp.example.com', 587)
server.starttls()
# 登录到你的帐户
server.login(from_email, from_password)
# 发送邮件
server.sendmail(from_email, to_email, msg.as_string())
# 关闭连接
server.quit()
print('邮件发送成功')
except Exception as e:
print(f'邮件发送失败: {str(e)}')
在上面的代码中,我们首先创建了一个MIMEMultipart对象并设置了发件人、收件人和主题。然后,我们创建了一个MIMEText对象作为邮件的正文内容,并将其附加到MIMEMultipart对象中。
接下来,我们打开并读取要作为附件发送的Excel文件。然后,我们创建一个MIMEBase对象,并将Excel文件的内容设置为该附件对象的内容。我们还使用encode_base64函数对附件进行编码,并添加了附件的头信息。
最后,我们连接到SMTP服务器并登录到我们的帐户。然后,我们使用sendmail函数发送邮件,并关闭连接。
请确保在代码中将your_email@example.com和your_password替换为你自己的电子邮件帐户信息,并将recipient_email@example.com替换为你要发送邮件的收件人的电子邮件地址。此外,需要将smtp.example.com替换为你的SMTP服务器地址。
这是一个使用MIMEBase发送带Excel文件附件的基本示例。你可以根据需要对代码进行修改和调整。
