
# 如何用Python发送邮件通知:自动化办公的实用技巧
在日常工作中,我们经常需要向同事、客户或团队发送邮件通知,例如系统报警、数据报告、任务提醒等。手动发送邮件不仅耗时,还容易遗漏。借助Python,我们可以轻松实现邮件通知的自动化,让工作更高效、更规范。本文将介绍如何用Python发送邮件,并提供一个完整的示例。
## 一、准备工作:了解SMTP协议
发送邮件需要借助SMTP(简单邮件传输协议)。Python内置的`smtplib`库提供了与SMTP服务器交互的功能,而`email`库则用于构建邮件内容(如主题、正文、附件等)。常见的邮箱服务商(如QQ邮箱、163邮箱、Gmail)都支持SMTP,但需要开启相关服务并获取授权码。
## 二、核心步骤:发送一封纯文本邮件
以下是一个发送纯文本邮件的示例:
```python
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 配置发件信息
smtp_server = "smtp.qq.com" # QQ邮箱的SMTP服务器
port = 587 # 端口号(TLS)
sender = "your_email@qq.com" # 发件人邮箱
password = "your_authorization_code" # 授权码(非登录密码)
receiver = "receiver@example.com" # 收件人邮箱
# 构建邮件内容
message = MIMEText("这是一封来自Python的测试邮件。", "plain", "utf-8")
message["From"] = Header("通知机器人", "utf-8")
message["To"] = Header("用户", "utf-8")
message["Subject"] = Header("Python邮件通知", "utf-8")
# 发送邮件
try:
server = smtplib.SMTP(smtp_server, port)
server.starttls() # 启用TLS加密
server.login(sender, password)
server.sendmail(sender, [receiver], message.as_string())
print("邮件发送成功!")
except Exception as e:
print(f"发送失败:{e}")
finally:
server.quit()
```
**关键点说明:**
- **授权码**:需在邮箱设置中生成,切勿使用登录密码。
- **端口号**:QQ邮箱常用587(TLS)或465(SSL),其他邮箱请查阅文档。
- **编码**:使用`utf-8`避免中文乱码。
## 三、进阶功能:发送带附件和HTML的邮件
实际场景中,邮件可能需要包含报表、图片或格式化内容。使用`MIMEMultipart`可以组合多种内容:
```python
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
msg = MIMEMultipart()
msg["From"] = sender
msg["To"] = receiver
msg["Subject"] = "带附件的报告"
# 添加HTML正文
html = "
本周数据报告
请查收附件。
"
msg.attach(MIMEText(html, "html", "utf-8"))
# 添加附件(如Excel文件)
with open("report.xlsx", "rb") as f:
att = MIMEApplication(f.read())
att.add_header("Content-Disposition", "attachment", filename="report.xlsx")
msg.attach(att)
# 发送逻辑同上
```
## 四、实际应用场景
1. **系统监控报警**:当服务器CPU或内存超过阈值时,自动发送邮件给运维人员。
2. **定时任务通知**:结合`schedule`或`APScheduler`库,每天定时发送数据报表。
3. **用户注册确认**:在Web应用中,用户注册后自动发送验证邮件。
## 五、注意事项
- **安全性**:授权码和邮箱信息不要硬编码在代码中,建议使用环境变量或配置文件。
- **频率限制**:部分邮箱对每日发件量有限制(如QQ邮箱每天500封),批量发送需谨慎。
- **错误处理**:添加异常捕获,避免因网络问题导致程序崩溃。
## 结语
用Python发送邮件通知是一项简单而实用的技能,能有效提升工作效率。从纯文本邮件到带附件的复杂邮件,只需几行代码即可实现。你可以根据自己的需求扩展功能,例如添加多个收件人、使用SSL加密等。希望本文能帮助你开启自动化办公的第一步,让技术真正服务于生活与工作。
本文链接:https://www.j520m.site/?id=547
--EOF--
发表于 2026-06-01 。
Comments