Python脚本遇到异常时应发送邮件
我想让我的Python脚本在出现任何错误时给我发邮件。我尝试了一些关于SMTP的代码,但不幸的是,它没有执行,并且显示了一个错误。请帮我找出主要问题。
这是我用的SMTP代码:
import smtplib
import string
SERVER = 'localhost'
SUBJECT = "Test email from Python"
TO = "abc.def@defghij.com"
FROM = "python@mydomain.com"
text = "Sample of mail"
BODY = string.join(("From: %s" % FROM,"To: %s" % TO,"Subject: %s" %SUBJECT ,"",text), "\r\n")
server = smtplib.SMTP(SERVER) #Here in this line it showing error
server.sendmail(FROM,TO,BODY)
server.quit()
** 错误信息 * server = smtplib.SMTP(SERVER)
socket.error: (10047, '地址类型不被协议支持:请查看 http://wiki.python.org/jython/NewSocketModule#IPV6addresssupport')
2 个回答
0
你可以试试yagmail,这样会方便很多:
from yagmail import SMTP
SMTP(FROM).send(TO, SUBJECT, text)
其实只需要这么简单,如果你做一些设置,你就注册好了,而且安全(不需要在脚本里写你的用户名和密码)。
想了解更多,可以去看看 github 上的内容。
0
我用 Jython 2.5.3 和 Python 2.7 测试了这段代码,如果把 SERVER
从 localhost
改成真实的 SMTP 服务器地址,它就能正常工作。我是从我的邮箱客户端的设置里找到了 SMTP 服务器的地址。