6

Outlook の SMTP サーバーを使用して、Django アプリケーションでメールを送信したいと考えています。問題は、メッセージを送信しようとするたびに、 SSL の間違ったバージョン番号エラーが発生することです。

エラーのトレースバック:

Traceback (most recent call last):
File "F:\Development\Python\lib\smtplib.py", line 366, in getreply
    line = self.file.readline()
File "F:\Development\Python\lib\socket.py", line 297, in readinto
    return self._sock.recv_into(b)
File "F:\Development\Python\lib\ssl.py", line 453, in recv_into
    return self.read(nbytes, buffer)
File "F:\Development\Python\lib\ssl.py", line 327, in read
    v = self._sslobj.read(len, buffer)
ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1450)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "F:\Development\Python\lib\site-packages\django\core\handlers\base.py", line 115,   in get_response
    response = callback(request, *callback_args, **callback_kwargs)
File "E:\SkyDrive\Repositories\web\skyproject\views.py", line 13, in index
    email.send()
File "F:\Development\Python\lib\site-packages\django\core\mail\message.py", line 255, in send
    return self.get_connection(fail_silently).send_messages([self])
File "F:\Development\Python\lib\site-packages\django\core\mail\backends\smtp.py", line 88, in send_messages
    new_conn_created = self.open()
File "F:\Development\Python\lib\site-packages\django\core\mail\backends\smtp.py", line 55, in open
    self.connection.login(self.username, self.password)
File "F:\Development\Python\lib\smtplib.py", line 621, in login
    AUTH_PLAIN + " " + encode_plain(user, password))
File "F:\Development\Python\lib\smtplib.py", line 398, in docmd
    return self.getreply()
File "F:\Development\Python\lib\smtplib.py", line 370, in getreply
+ str(e))

smtplib.SMTPServerDisconnected: Connection unexpectedly closed: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1450)

これは「settings.py」の私のSMTP構成です:

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.live.com'
EMAIL_HOST_USER = 'my_email@outlook.com'
EMAIL_HOST_PASSWORD = 'my_password'
EMAIL_PORT = 587

メッセージの送信方法は次のとおりです。

from django.core.mail import EmailMessage
email = EmailMessage('Test', 'Test', to=['email_address@example.com'])
email.send()

なぜこのエラーが発生するのかわかりません。私の知る限り、Django の設定に SSL_VERSION パラメータはありません。

重要な場合、私のインタープリターのバージョンは3.3.2で、Django のバージョンは1.5.2です。

4

3 に答える 3