Python 自动化通信:发送邮件与短信
Python 发送邮件和短信
在完成了文档的自动生成(Excel, Word, PDF)后,最后一步通常是将其发送给相关人员。在 Daoman Python AI 的业务场景中,通过 Python 自动发送通知邮件或短信验证码,是实现企业级自动化的核心环节。
1. 发送电子邮件:基于 SMTP 协议
发送邮件并不需要打开浏览器,而是通过 SMTP (简单邮件传输协议) 直接与邮件服务器通信。Python 内置的 smtplib 模块封装了这一复杂的底层逻辑。
1.1 准备工作:获取授权码
出于安全考虑,网易 (126/163) 或 QQ 邮箱不允许第三方程序直接使用登录密码。你需要在邮箱设置中开启 POP3/SMTP 服务,并获取一个专用的 “授权码”。
1.2 发送基础文本邮件
邮件内容由 email.mime 模块构建。如果是纯文本,使用 MIMEText;如果包含附件或图片,则需使用 MIMEMultipart。
1.3 发送带附件的邮件
发送附件的关键是将文件内容进行 Base64 编码。这种编码方式能将二进制数据(如 .docx 或 .pdf)转为可传输的文本字符。
2. 发送短信:集成第三方网关
短信发送无法直接通过协议完成,必须调用运营商或第三方短信服务商(如螺丝帽、阿里云、腾讯云)提供的 HTTP API。
2.1 发送流程
- 注册账号:获取 API Key。
- 配置签名:如
【道满科技】,国家规定短信必须带签名。 - 发起请求:通过
requests库将手机号和内容推送到网关。
2.2 实战代码(以螺丝帽为例)
3. 总结与建议
- 安全性:绝不要在代码中硬编码授权码或 API Key,建议使用环境变量(Environment Variables)存储。
- 可靠性:邮件发送可能会被识别为垃圾邮件,建议在正文中加入一些个性化称呼(如“亲爱的 XXX”)。
- 合规性:发送短信必须遵守相关法规,严禁发送未经许可的营销信息,且必须配置 IP 白名单防止接口被盗刷。

