linux上的Python Smtp SSL错误版本
我通过msft outlook.com发送电子邮件的代码可以在windows上运行,但不能在我的linux设备上运行。你知道怎么解决这个问题吗linux上的Python Smtp SSL错误版本,python,ssl,smtp,Python,Ssl,Smtp,我通过msft outlook.com发送电子邮件的代码可以在windows上运行,但不能在我的linux设备上运行。你知道怎么解决这个问题吗 import smtplib smtp = smtplib.SMTP('smtp.live.com', port=587) smtp.starttls() smtp.login(username, password) SMTPServerDisconnected: Connection unexpectedly closed: [Errno 1] _
import smtplib
smtp = smtplib.SMTP('smtp.live.com', port=587)
smtp.starttls()
smtp.login(username, password)
SMTPServerDisconnected: Connection unexpectedly closed:
[Errno 1] _ssl.c:1359: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
编辑:更多详细信息:gentoo linux与python 2.7.3、openssl 0.9.8x和1.0.1c的结合,我敢打赌问题在另一边。你好,微软 我尝试登录过很多次,你不会相信我,但有些服务器会让我进去,而其他服务器不会。 尝试执行
smtp.ehlo()
以查找服务器的主机名(顺便说一句,您必须在会话开始时以及STARTTLS
之后立即发出ehlo
)
他们所有的服务器都有名称BLU0-SMTPphx.gbl
。信不信由你,名称中有两位数字的服务器可以,但有三位数字的服务器则不行
In [52]: s = smtplib.SMTP('smtp.live.com', port=587)
In [53]: s.ehlo()
Out[53]:
(250,
'BLU0-SMTP17.phx.gbl Hello [188.134.8.114]\nTURN\nSIZE 41943040\nETRN\nPIPELINING\nDSN\nENHANCEDSTATUSCODES\n8bitmime\nBINARYMIME\nCHUNKING\nVRFY\nTLS\nSTARTTLS\nOK')
In [54]: s.starttls()
Out[54]: (220, '2.0.0 SMTP server ready')
In [55]: s.ehlo()
Out[55]:
(250,
'BLU0-SMTP17.phx.gbl Hello [188.134.8.114]\nTURN\nSIZE 41943040\nETRN\nPIPELINING\nDSN\nENHANCEDSTATUSCODES\n8bitmime\nBINARYMIME\nCHUNKING\nVRFY\nAUTH LOGIN PLAIN\nOK')
In [56]: s.login(login, password)
Out[56]: (235, '2.7.0 Authentication succeeded')
更新:嗯,似乎这是一个。你的
python-V
和openssl版本是什么?@korylprince python 2.7.3,openssl 0.9.8x我唯一能建议的就是升级你的openssl。你的代码对我来说很好。@korylprince你的openssl版本是什么?2012年3月14日Ubuntu 12.04上的openssl 1.0.1
是的,这就是问题所在。我降级到1.0.0j,smtp现在可以正常工作。@kefeizhou为什么不升级到1.0.1e?@kirelagin,我在1.0.1e上遇到了同样的问题。
In [42]: s = smtplib.SMTP('smtp.live.com', port=587)
In [43]: s.ehlo()
Out[43]:
(250,
'BLU0-SMTP116.phx.gbl Hello [188.134.8.114]\nTURN\nSIZE 41943040\nETRN\nPIPELINING\nDSN\nENHANCEDSTATUSCODES\n8bitmime\nBINARYMIME\nCHUNKING\nVRFY\nTLS\nSTARTTLS\nOK')
In [44]: s.starttls()
Out[44]: (220, '2.0.0 SMTP server ready')
In [45]: s.ehlo()
Out[45]:
(250,
'BLU0-SMTP116.phx.gbl Hello [188.134.8.114]\nTURN\nSIZE 41943040\nETRN\nPIPELINING\nDSN\nENHANCEDSTATUSCODES\n8bitmime\nBINARYMIME\nCHUNKING\nVRFY\nAUTH LOGIN PLAIN\nOK')
In [46]: s.login(login, password)
---------------------------------------------------------------------------
SMTPServerDisconnected Traceback (most recent call last)