Python Django send_mail返回SMTPConnectError

Python Django send_mail返回SMTPConnectError,python,django,email,smtplib,Python,Django,Email,Smtplib,我正在尝试使用Django send_email、smtp和gmail发送电子邮件。但是,代码返回SMTPConnectError(-1,b”) My settings.py文件: ALLOWED_HOSTS = [] DEFAULT_FROM_EMAIL = 'mygmailid' SERVER_EMAIL = 'mygmailid' EMAIL_USE_TLS = True EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBacken

我正在尝试使用Django send_email、smtp和gmail发送电子邮件。但是,代码返回SMTPConnectError(-1,b”)

My settings.py文件:

ALLOWED_HOSTS = []
DEFAULT_FROM_EMAIL = 'mygmailid'
SERVER_EMAIL = 'mygmailid'
EMAIL_USE_TLS = True
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'mygmailid'
EMAIL_HOST_PASSWORD = 'myPassword'
EMAIL_PORT = 587
from django.http import HttpResponse
from django.core.mail import send_mail
from smtplib import SMTPConnectError
#rest of the code in between
....
try:
   send_mail('testmail', 'test content', settings.EMAIL_HOST_USER, ['arkaghosh024@gmail.com', fail_silently=False])
except SMTPConnectError as e:
   return HttpResponse(e)
My views.py文件:

ALLOWED_HOSTS = []
DEFAULT_FROM_EMAIL = 'mygmailid'
SERVER_EMAIL = 'mygmailid'
EMAIL_USE_TLS = True
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'mygmailid'
EMAIL_HOST_PASSWORD = 'myPassword'
EMAIL_PORT = 587
from django.http import HttpResponse
from django.core.mail import send_mail
from smtplib import SMTPConnectError
#rest of the code in between
....
try:
   send_mail('testmail', 'test content', settings.EMAIL_HOST_USER, ['arkaghosh024@gmail.com', fail_silently=False])
except SMTPConnectError as e:
   return HttpResponse(e)
回溯:

Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\Python34\lib\site-packages\django-1.8.2-  py3.4.egg\django\core\mail\__
init__.py", line 62, in send_mail
return mail.send()
File "C:\Python34\lib\site-packages\django-1.8.2- py3.4.egg\django\core\mail\me
ssage.py", line 303, in send
return self.get_connection(fail_silently).send_messages([self])
File "C:\Python34\lib\site-packages\django-1.8.2-py3.4.egg\django\core\mail\ba
ckends\smtp.py", line 100, in send_messages
new_conn_created = self.open()
File "C:\Python34\lib\site-packages\django-1.8.2-py3.4.egg\django\core\mail\ba
ckends\smtp.py", line 58, in open
self.connection = connection_class(self.host, self.port, **connection_params
)
File "C:\Python34\lib\smtplib.py", line 244, in __init__
raise SMTPConnectError(code, msg)
smtplib.SMTPConnectError: (-1, b")
它工作正常。而且,当我使用虚拟后端时,它不会显示错误


我尝试过使用SSL而不是TLS,允许gmail中的应用程序不太安全,关闭了防火墙,还尝试过其他与通过django发送电子邮件相关的stackoverflow帖子,但都没有效果。我不知道错误是什么。请帮助我。提前感谢。

gmail帐户需要此:

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'your-username@gmail.com'
EMAIL_HOST_PASSWORD = 'your-password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
  • 然后通过以下方式测试其工作:
  • python manage.py shell

    from django.core.mail import send_mail
    send_mail('testEmail', 'hi', 'Youremail@email.com', ['Emailtest@email.com'])
    

    如果您没有使用gmail帐户,但仍然遇到问题,那么只需尝试将EMAIL\u HOST\u用户和EMAIL\u HOST\u密码添加到您的帐户中即可。如果仍然存在问题,可能是您的网络阻止了您。操作系统或路由器上的防火墙。

    您可能需要解锁Captcha以使Django能够为您发送电子邮件:非常有效。谢谢。不需要专业人士问题。祝你好运!(:谢谢你的回答。我已经尝试了所有这些。问题现在已经解决。它与我们学院的网络有关。我没有发布解决方案,因为这是一个非常学院特有的问题。