如何用Python发送邮件通知 - 2026-06-01 08:00:02

 如何用Python发送邮件通知 - 2026-06-01 08:00:02

# 如何用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--

Comments

您是本站第409904名访客 今日有1篇新文章/评论

AI 助手
在线
你好!有什么可以帮助你的吗?