【问题标题】:Unable to send error log email using smptlib and loggings, Python无法使用 smptlib 和日志记录、Python 发送错误日志电子邮件
【发布时间】:2016-11-12 08:42:03
【问题描述】:

您好,我正在尝试在引发异常时向自己发送电子邮件。但是我遇到了一个我不知道如何解决的异常。这是代码和异常。我已经尝试了所有的答案,但都是徒劳的

import logging
import logging.handlers
import smtplib

s = smtplib.SMTP_SSL("smtp.gmail.com", 587)
s.login('xyz@gmail.com', 'myPassword')
s.starttls()

logger = logging.getLogger()
logger.addHandler(s)

try:
    a = 2/0
except Exception as e:
  logger.exception('Unhandled Exception')
  s.sendmail('xyz@gmail.com', 'xyz@gmail.com', 'Hi')
  s.close()

错误日志:

Traceback(最近一次调用最后一次):文件“try.py”,第 5 行,在 s = smtplib.SMTP_SSL("smtp.gmail.com", 587)

文件“/usr/lib/python2.7/smtplib.py”,第 788 行,在 init 中 SMTP。init(自身、主机、端口、本地主机名、超时)

文件“/usr/lib/python2.7/smtplib.py”,第 256 行,在 init 中 (code, msg) = self.connect(host, port)

文件“/usr/lib/python2.7/smtplib.py”,第 316 行,在连接中 self.sock = self._get_socket(host, port, self.timeout)

文件“/usr/lib/python2.7/smtplib.py”,第 794 行,在 _get_socket new_socket = ssl.wrap_socket(new_socket, self.keyfile, self.certfile)

文件“/usr/lib/python2.7/ssl.py”,第 487 行,在 wrap_socket 密码=密码)

文件“/usr/lib/python2.7/ssl.py”,第 243 行,在 init 中 self.do_handshake()

文件“/usr/lib/python2.7/ssl.py”,第 405 行,在 do_handshake 中 self._sslobj.do_handshake()

ssl.SSLError: [Errno 1] _ssl.c:510: error:140770FC:SSL 例程:SSL23_GET_SERVER_HELLO:未知协议

提前感谢您的帮助。

【问题讨论】:

    标签: python-2.7 email logging smtplib


    【解决方案1】:

    587 是非 SSL 端口,因此 SMTP_SSL 调用失败。尝试使用端口 465 作为

    smtplib.SMTP_SSL("smtp.gmail.com", 465)

    或者使用587端口的方法

    smtplib.SMTP("smtp.gmail.com", 587)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-20
      • 2016-02-23
      相关资源
      最近更新 更多