QuXiao's Blog

Life && Tech && Thoughts

使用Python+SMTP协议发送HTML邮件

Written on

为了方便地观察自己负责的模块的数据产出,于是写了一个脚本去定时请求模块接口,并将返回的数据以邮件形式发送出去。

对于这个功能,因为是内部使用,首先想到的就是用Python脚本,利用自己已经注册的邮箱的SMTP服务端口去发送邮件。首先去查看官方文档,例子写得比较简单明了。很快写出了程序,但是测试发送时,程序总是停留在sendmail语句处,查找了很多资料,都没有解决问题,不过最后还是找到了原因:

需要使用SMTP_SSL类,而不是SMTP

SMTP_SSL类提供了和SMTP同样的接口,只需要稍微修改下import语句

#from smtplib import SMTP
from smtplib import SMTP_SSL

#...
#s = SMTP('smtp.yeah.net', port=465, timeout=10)
s = SMTP_SSL('smtp.yeah.net', port=465, timeout=10)

至于HTML格式,官方文档的例子展示的比较清楚,这里就不讲了。

另外,还在实际使用过程中发现一个坑:发送邮件至QQ邮箱,总会被判断为垃圾邮件

我的解决方案是:在邮件标题和正文中,尽量使用中文。加入中文之后,就立马被当做正常的邮件了。

-- EOF --

This entry is posted in misc.

comments powered by Disqus