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

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服务器发送邮件。

希望对你有所帮助!