2013-06-09 3 views
2

Мой код для отправки электронной почты через msft outlook.com работает в Windows, но не в моем Linux-окне. Любая идея, как это исправить?Python Smtp Неверная версия SSL на linux

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 

EDIT: более подробно: Gentoo Linux с Python 2.7.3, Openssl 0.9.8x и 1.0.1c

+1

Какова ваша '' 'python -V''' и' '' версия openssl''''? – korylprince

+0

@korylprince python 2.7.3, openssl 0.9.8x – kefeizhou

+0

Единственное, что я могу предложить, это обновить ваш opensl. Ваш код отлично работает для меня. – korylprince

ответ

2

Я держал пари, что проблема находится на другой стороне провода. Привет, Microsoft!

Я пробовал регистрироваться несколько раз, и вы не поверите мне, но некоторые серверы позволят мне войти, а другие - нет. Попробуйте сделать smtp.ehlo(), чтобы найти имя хоста сервера (кстати, вы должны выдать EHLO в начале вашей сессии и сразу после STARTTLS).

Все их серверы имеют имена BLU0-SMTP<somenumber>phx.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') 
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) 

Update: Хм, кажется, что это known issue with 1.0.1c.

+0

Да, это проблема. Я понизил до 1.0.0j и smtp работает сейчас. – kefeizhou

+0

@kefeizhou Почему бы вам не перейти на 1.0.1e вместо этого? – kirelagin

+1

@kirelagin, у меня такая же проблема с 1.0.1e. – highBandWidth

Смежные вопросы