我尝试使用SMTP库执行完全自动化的Raspberry Pi,以发送带有特定地址附件的电子邮件。但我实际上并不知道如何测试电子邮件是否成功发送。如果由于某种原因无法发送,就像没有互联网连接一样,它应该在几分钟后再试一次。
我使用Raspberry Model 3和Raspian GNU / Linux 8
我发现了一些可以解决的问题:
[..]
try:
smtpserver.sendmail(sender, [receiver], msg.as_string())
smtpserver.quit()
except smtplib.SMTPConnectionError:
print(_logger.exception('SMTP Connection failed to %s on %s' % (host, port)))
我知道它不会起作用,因为它只是一个打印命令,但我试过它只是为了安全。 我收到了这个错误代码:
Traceback (most recent call last):
File "**Path + Filename**", line 43, in <module>
smtpserver = smtplib.SMTP('***', ***)
File "/usr/lib/python2.7/smtplib.py", line 256, in __init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python2.7/smtplib.py", line 316, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "/usr/lib/python2.7/smtplib.py", line 291, in _get_socket
return socket.create_connection((host, port), timeout)
File "/usr/lib/python2.7/socket.py", line 553, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno -2] Name or service not known
如何测试是否已建立连接且邮件已发送?
ps:我的英语不完美,但我希望这是可以理解的答案 0 :(得分:0)
除了smtplib.SMTPConnectionError
之外,您的帖子追溯是其他例外(因此您的电子邮件未发送):
您可以除了所有其他例外,然后在那里进行调试:
[..]
try:
smtpserver.sendmail(sender, [receiver], msg.as_string())
smtpserver.quit()
except smtplib.SMTPConnectionError:
print(_logger.exception('SMTP Connection failed to %s on %s' % (host, port)))
except Exception as e:
print(e)