python yagmail发送邮件的神器¶
0 背景¶

在python项目开发中, 我们有时候需要通过邮件实现诸如 异常告警, 信息通知, 验证码发送等的一些功能, 我们可以使用python自带的smtplib, email进行邮件的发送, 但是自带的smtplib在进行使用时, 配置和发送操作步骤比较多, 配置较为麻烦, 因为, 本文, 我们使用使用一个更加简洁高效的发送邮件库--yagmail, 我们可以使用它作为我们开发项目的处理电子邮件任务的首选工具.
yagmail的优势:
- 简洁的 API:yagmail 库提供了一个非常简洁的接口,有一说一,接口是真简单。
- 安全性:在处理电子邮件发送时,安全性是一个不容忽视的因素。yagmail 通过内置的安全机制,如 OAuth2 认证,保证了邮件发送过程的安全性。
- 灵活性和功能丰富:yagmail 支持发送多种格式的邮件,包括纯文本、HTML 内容,甚至可以附加图片和文件。这使得它能够应对各种不同的邮件发送需求。
- 集成和自动化:yagmail 可以轻松集成到各种Python应用程序中,特别适合于需要自动发送电子邮件的场景,如自动化报告、通知系统等。
1 使用¶
1 安装¶
yagmail是一个第三方的包. 使用pip安装
2 编写脚本¶
from yagmail import SMTP
mail_config = {
'user': {
'[email protected]': '熊二'
},
'password': '8ea10a8b8d615d02324396c3df45ab08',
'host': 'smtp.qq.com',
'port': 465,
}
server = SMTP(**mail_config)
mail_info = {
'to': {
'[email protected]': '光头强',
'[email protected]': '熊大',
},
'subject': '标题',
'contents': '内容',
'attachments': '附件的路径, 多个附件使用列表',
'cc': {
'[email protected]': '抄送账户'
},
'bcc': {
'[email protected]': '密送账户'
}
}
server.send(**mail_info)
server.close()
这里, 我写了一个基础的使用yagmail的脚本, 在这其中, 我使用字典作为可变参数配置.
另外, mail_config 里面的user我也使用了字典, 是因为我想在发送邮件的时候, 给我自己一个昵称, 告诉接收者我是谁, 同理, mail_info的to, cc, bcc也是给接收者增加一个昵称, 当然, 如果不需要, 可以直接字符串, 而不是使用字典, 接收者如果有多个, 也可以直接使用列表.
另外, mail_info的contents和attachments也可以使用列表, 表示多个内容的拼接, 或者多个附件, 内容主题可以时普通文本, 也可以使用html格式.
注意, QQ邮箱和网易邮箱出于密码安全的考虑, 是使用授权码作为密码的.
贴一个QQ邮箱和网易邮箱的配置:
QQ邮箱
POP3/SMTP 设置方法 用户名/帐户: 你的QQ邮箱完整的地址
密码: 生成的授权码
电子邮件地址: 你的QQ邮箱的完整邮件地址
接收邮件服务器: pop.qq.com,使用SSL,端口号995
发送邮件SMTP服务器: smtp.qq.com,使用SSL,端口号465或587
网易邮箱
发送邮件SMTP服务器: smtp.163.com,使用SSL,端口号465
2 关于¶
欢迎关注我的微信公众号.¶