Python 语言 用 Python+Outlook 自动发送带附件的邮件 工资条 / 对账单

Python阿木 发布于 3 天前 5 次阅读


Python+Outlook 自动发送带附件的邮件教程

在现代社会,电子邮件已经成为商务沟通的重要工具。自动发送带附件的邮件,如工资条、对账单等,可以大大提高工作效率,减少人工操作。本文将介绍如何使用Python结合Outlook实现这一功能。

准备工作

在开始编写代码之前,请确保以下准备工作已完成:

1. 安装Python环境。
2. 安装`pywin32`库,用于与Outlook进行交互。
3. 安装`email`库,用于构建邮件内容。

bash
pip install pywin32
pip install email

代码实现

以下是一个使用Python+Outlook自动发送带附件邮件的示例代码:

python
import os
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

邮件发送者信息
sender_email = "your_email@example.com"
sender_password = "your_password"

邮件接收者信息
receiver_email = "receiver_email@example.com"

邮件主题
subject = "工资条 / 对账单"

邮件正文
body = "请查收您的工资条 / 对账单。"

附件路径
attachment_path = "path_to_attachment"

创建MIMEMultipart对象
msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = receiver_email
msg['Subject'] = subject

添加邮件正文
msg.attach(MIMEText(body, 'plain'))

添加附件
with open(attachment_path, 'rb') as attachment:
part = MIMEBase('application', 'octet-stream')
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header(
'Content-Disposition',
f'attachment; filename= {os.path.basename(attachment_path)}',
)
msg.attach(part)

连接SMTP服务器并发送邮件
server = smtplib.SMTP('smtp.example.com', 587)
server.starttls()
server.login(sender_email, sender_password)
text = msg.as_string()
server.sendmail(sender_email, receiver_email, text)
server.quit()

代码解析

1. 导入库:导入必要的库,包括`os`、`smtplib`、`MIMEMultipart`、`MIMEText`、`MIMEBase`和`encoders`。

2. 设置邮件发送者信息:定义发送者的邮箱地址和密码。

3. 设置邮件接收者信息:定义接收者的邮箱地址。

4. 设置邮件主题和正文:定义邮件的主题和正文内容。

5. 设置附件路径:定义附件的路径。

6. 创建MIMEMultipart对象:创建一个MIMEMultipart对象,用于构建邮件内容。

7. 添加邮件正文:使用MIMEText添加邮件正文。

8. 添加附件:使用MIMEBase添加附件,并设置附件的MIME类型、内容编码和文件名。

9. 连接SMTP服务器并发送邮件:连接到SMTP服务器,使用starttls()方法启用TLS加密,然后使用login()方法登录,最后使用sendmail()方法发送邮件。

总结

本文介绍了如何使用Python结合Outlook实现自动发送带附件的邮件。通过以上代码,您可以轻松地发送工资条、对账单等文件。在实际应用中,您可以根据需要修改代码,如添加多个附件、设置邮件格式等。希望本文对您有所帮助!