Python邮件附件:使用email.mime.application模块发送带有Excel表格附件的邮件
发布时间:2024-01-02 02:01:22
在Python中,可以使用email模块来创建和发送电子邮件。要发送带有附件的邮件,可以使用email.mime.application模块。
下面是一个示例代码,演示如何使用Python发送带有Excel表格附件的邮件。
首先,我们需要导入必要的模块:
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.application import MIMEApplication
然后,我们需要设置发件人、收件人、主题和邮件正文:
from_addr = 'sender@example.com' # 发件人邮箱 to_addr = 'recipient@example.com' # 收件人邮箱 subject = '邮件主题' # 邮件主题 msg = MIMEMultipart() msg['From'] = from_addr msg['To'] = to_addr msg['Subject'] = subject body = '邮件正文' msg.attach(MIMEText(body, 'plain'))
接下来,我们需要添加附件。假设我们要添加一个名为data.xlsx的Excel表格作为附件:
attachment_path = 'data.xlsx' # 附件路径
with open(attachment_path, 'rb') as f:
attachment = MIMEApplication(f.read(), _subtype='xlsx')
attachment.add_header('Content-Disposition', 'attachment', filename=attachment_path)
msg.attach(attachment)
最后,我们需要使用SMTP服务器发送邮件:
smtp_server = 'smtp.example.com' # SMTP服务器地址
smtp_port = 587 # SMTP服务器端口
smtp_username = 'sender@example.com' # 发件人邮箱
smtp_password = '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))
上述代码首先创建了一个MIMEMultipart对象,用于存储邮件的各个部分。然后,使用MIMEText对象设置了邮件的主题和正文部分。接着,使用MIMEApplication将Excel表格作为附件添加到邮件中。最后,使用SMTP服务器发送邮件。
需要注意的是,我们需要提供正确的SMTP服务器地址、端口、发件人邮箱和发件人邮箱密码。
总结起来,使用email.mime.application模块发送带有Excel表格附件的邮件主要涉及以下步骤:
1. 导入必要的模块;
2. 设置发件人、收件人、主题和邮件正文;
3. 添加附件;
4. 使用SMTP服务器发送邮件。
希望对你有所帮助!
