0
点赞
收藏
分享

微信扫一扫

Python使用yagmail库发送邮件

Gaaidou 2021-09-28 阅读 73

    接着上一篇文章,可用将监控信息发送给邮件中来实现一些告警监控。这一篇文章就来实践开源库yagmail库。

    先来个简单的测试。笔者使用的是163邮箱来发送邮件,注意需要进入邮箱开启SMTP服务,然后得到一个授权码,用于登录第三方邮件客户端的专用密码。那么 password替换为授权码即可。官网上有库的详细说明yagmail · PyPI 。

        如果调试时出现错误,一般就是三个方面的问题:安装yagmail库,smtp服务没开启,邮箱授权码要写对。

    但是笔者在上一篇文章-Python使用psutil库监控服务器 的程序中发送邮件时一直存在告警,开始以为是库安装问题,切换root用户安装还是存在问题。有问题代码如下:

    花费时间找了一圈才解决两个问题。

    1、port=25

    指定端口25时会发送失败,查看site-packages下的源码才知道端口号邮件不是25了。

    2、encode('utf-8')

    encode转码返回的是bytes类型的数据,而不是要求的str类型,直接删除即可。

    其他使用方法。

   1、 查看yagmail库的github使用说明,yagmail库可以指定链接以及加载图片,比如

    yag.send(to=to,subject=subject,contents=[body,html,img])

    2、还可以增加附件,比如

     yag.send(to=recipients,subject=email_subject,contents=contents,attachments=       ['path/to/attachment1.png','path/to/attachment2.pdf'])

    3、同时,直接在代码里写明文的密码显然是不安全的,推荐使用 keyring。如果你是虚拟环境使用keyring的话,pypi官网上有信息配置资料。

4、使用上下文管理器进一步优化关闭链接的逻辑

举报

相关推荐

0 条评论