如何用Python发送邮件通知 - 2026-05-23 00:00:01

 如何用Python发送邮件通知 - 2026-05-23 00:00:01

# 如何用Python发送邮件通知:从入门到实践 在日常工作或项目中,我们经常需要自动发送邮件通知,比如系统报警、数据报告推送或用户注册确认。Python作为一门高效且易用的编程语言,提供了强大的库来轻松实现这一功能。本文将带你一步步掌握用Python发送邮件通知的方法。 ## 一、准备工作:了解SMTP协议 发送邮件需要借助SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)。Python内置的`smtplib`库可以让我们通过代码连接邮件服务器,并发送邮件。同时,`email`库用于构建邮件内容(如主题、正文、附件等)。你需要准备一个可用的邮箱账号(推荐使用QQ邮箱或163邮箱),并开启其SMTP服务,获取授权码(而非登录密码)。 ## 二、核心步骤:编写发送代码 ### 1. 导入必要模块 ```python import smtplib from email.mime.text import MIMEText from email.header import Header ``` ### 2. 配置邮箱信息 ```python # 发件人邮箱配置 smtp_server = "smtp.qq.com" # 以QQ邮箱为例 sender_email = "your_email@qq.com" # 你的邮箱地址 password = "your_authorization_code" # 授权码 receiver_email = "receiver@example.com" # 收件人邮箱 ``` ### 3. 构建邮件内容 ```python # 创建纯文本邮件 message = MIMEText("这是Python自动发送的通知邮件。", "plain", "utf-8") message["From"] = Header("系统通知", "utf-8") message["To"] = Header("用户", "utf-8") message["Subject"] = Header("Python邮件测试", "utf-8") ``` ### 4. 连接服务器并发送 ```python try: # 建立SSL连接(端口465) server = smtplib.SMTP_SSL(smtp_server, 465) server.login(sender_email, password) server.sendmail(sender_email, [receiver_email], message.as_string()) print("邮件发送成功!") except Exception as e: print(f"发送失败:{e}") finally: server.quit() ``` ## 三、进阶技巧:添加附件与HTML内容 实际应用中,你可能需要发送带附件的报告或美观的HTML邮件。使用`email.mime.multipart`模块即可实现: ```python from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email import encoders # 创建多部分邮件 msg = MIMEMultipart() msg["From"] = sender_email msg["To"] = receiver_email msg["Subject"] = "带附件的数据报告" # 添加HTML正文 html_content = "

本周数据

请查看附件。

" msg.attach(MIMEText(html_content, "html", "utf-8")) # 添加附件(例如一个Excel文件) attachment = open("report.xlsx", "rb") part = MIMEBase("application", "octet-stream") part.set_payload(attachment.read()) encoders.encode_base64(part) part.add_header("Content-Disposition", "attachment", filename="report.xlsx") msg.attach(part) # 发送代码与之前相同 ``` ## 四、安全与最佳实践 1. **保护敏感信息**:切勿将邮箱密码或授权码直接写在代码中,建议使用环境变量(如`os.getenv("EMAIL_PWD")`)或配置文件。 2. **异常处理**:始终用`try...except`捕获网络错误、认证失败等异常,避免程序崩溃。 3. **频率控制**:避免短时间内大量发送邮件,以免被服务器视为垃圾邮件而封禁。 4. **日志记录**:将发送结果写入日志文件,便于排查问题。 ## 五、实用场景示例 - **系统监控**:当服务器CPU或内存超过阈值时,自动发送告警邮件。 - **每日报表**:定时任务(如使用`schedule`库)每天自动发送业务数据到管理团队。 - **用户通知**:注册成功、密码重置等场景,通过邮件发送验证链接。 ## 结语 用Python发送邮件通知不仅简单,而且非常实用。通过本文介绍的基础方法和进阶技巧,你可以快速为自己的项目添加邮件通知功能。记得先从测试环境开始,确保一切正常后再应用到生产环境。希望这篇文章能帮助你高效完成任务,让自动化的力量为你的工作添砖加瓦!

本文链接:https://www.j520m.site/?id=464

--EOF--

Comments

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

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