python发送邮件可以如此简单--yagmail
2019-02-21 本文已影响0人
alue
之前, 用python发送邮件采用的是原生的smtplib和email库, 用着不怎么舒服. 如果要添加附件的话, 还需要自己设置MIME, 代码最少也会有十多行, 太不方便了. 今天查到有个yagmail库, 可以很优雅的处理这个问题.
import yagmail
yag = yagmail.SMTP(user='xxx@qq.com', password='授权码',host='smtp.qq.com')#参数为发送邮箱, 邮箱密码(授权码), 发送邮箱服务器
#邮箱正文,是一个列表
contents = [
"<h1 style='color:red'>一级标题</h1>",#可以是html语言
'beauty.jpg',#可以是文件,以附件形式发送
# yagmail.inline('beauty.jpg'),# 这样的话,图片会内嵌到正文
'hello world', #可以是普通文本
]
yag.send(to = '接收方邮箱地址',subject ='测试',contents = contents)
yagmail最方便之处在于能够自动判断contents类型, 列表的每个元素会被依次分析, 先判断是否为文件, 如果是文件, 则置于附件中发送(文件可以是相对路径, 也可以填写绝对路径). 不是文件的话, 则会再次判断是否为html语言, 是的话, 能够在正文中被浏览器渲染. 如果上面的情况都不成立, 则当作普通文本, 置于邮件正文. 上面的代码运行结果如下:
运行结果:收到的邮件
注意: 如果采用 yagmail.inline处理contents中的图片元素, 则图片会被内嵌到邮件正文, 不会变成附件传输.