我想使用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 。
答案 0 :(得分:0)
我使用以下设置:
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp-mail.outlook.com'
EMAIL_HOST_USER = 'myemail@outlook.com'
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_PORT = 25
答案 1 :(得分:0)
我有一个非常类似的问题。我收到以下错误消息:
SMTPServerDisconnected: Connection unexpectedly closed
解决方案是:
在此之后,我可以很好地发送来自Django的电子邮件。
答案 2 :(得分:0)
为 OutLook 尝试这些设置:
.htaccess