python에서 hotmail smtp 서버를 사용하려고합니다. 그러나 로그인 시도가 명백한 SSL3 버전 번호 오류를 발생시킵니다. 내가 사용하고있는 버전을 어떻게 바꿀 수 있으며 어떻게 조사 할 수 있습니까? smtp를 사용하는 Hotmail SSL3 버전 번호 오류
>> s.connect('smtp.live.com:587')
(220,
'BLU0-SMTP46.phx.gbl Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at Tue, 2 Jul 2013 12:15:57 -0700')
>> s.ehlo()
(250,
'BLU0-SMTP46.phx.gbl Hello [123.456.789.01]\nTURN\nSIZE 41943040\nETRN\nPIPELINING\nDSN\nENHANCEDSTATUSCODES\n8bitmime\nBINARYMIME\nCHUNKING\nVRFY\nTLS\nSTARTTLS\nOK')
s.starttls()
(220, '2.0.0 SMTP server ready')
>> s.login('[email protected]','MyPaSsW0rD')
---------------------------------------------------------------------------
SMTPServerDisconnected Traceback (most recent call last)
<ipython-input-48-c8e9d7577d8d> in <module>()
----> 1 s.login('[email protected]','myPassw0rd')
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.pyc in login(self, user, password)
600 elif authmethod == AUTH_PLAIN:
601 (code, resp) = self.docmd("AUTH",
--> 602 AUTH_PLAIN + " " + encode_plain(user, password))
603 elif authmethod == AUTH_LOGIN:
604 (code, resp) = self.docmd("AUTH",
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.pyc in docmd(self, cmd, args)
384 """Send a command, and return its response code."""
385 self.putcmd(cmd, args)
--> 386 return self.getreply()
387
388 # std smtp commands
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.pyc in getreply(self)
357 self.close()
358 raise SMTPServerDisconnected("Connection unexpectedly closed: "
--> 359 + str(e))
360 if line == '':
361 self.close()
SMTPServerDisconnected: Connection unexpectedly closed: [Errno 1] _ssl.c:1363: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
내 SSL 버전 : 아마도이 관련되어
>> import _ssl
>> print _ssl.OPENSSL_VERSION
OpenSSL 1.0.1e 11 Feb 2013
: 당신이보고 동일한에서 OpenSSL 버전을 사용 나는 파이썬 2.7.3와 데비안 위지와 함께 문제를 복제 할 수 있습니다
나는'starttls()'다음에'ehlo()'를 다시해야한다고 생각한다. 또한'_ssl'과'print _ssl.OPENSSL_VERSION'을 import한다면 무엇을 얻게 될까요? – rhashimoto
@rhashimoto, 나는 또 다른 ehlo를 추가했다. 그리고 그것은 나에게 같은 오류를 주었다. SSL 버전 정보를 추가했습니다. – highBandWidth
Django의 기본 EmailBackend를 사용하여 동일한 문제가 발생했습니다 (당연히 smtplib에 의존합니다). 그래서 나는이 문제에 부딪 치는 다른 사람들에게 유용 할 수있는 맞춤형 EmailBackend (rhashimoto의 답을 바탕으로)를 작성했습니다! https://github.com/cybercase/django-smtp-starttls – cybercase