Python脚本遇到异常时应发送邮件

0 投票
2 回答
1435 浏览
提问于 2025-04-17 13:54

我想让我的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 测试了这段代码,如果把 SERVERlocalhost 改成真实的 SMTP 服务器地址,它就能正常工作。我是从我的邮箱客户端的设置里找到了 SMTP 服务器的地址。

撰写回答