python – Django send_mail返回SMTPConnectError
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Django send_mail返回SMTPConnectError,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2406字,纯文字阅读大概需要4分钟。
内容图文
![python – Django send_mail返回SMTPConnectError](/upload/InfoBanner/zyjiaocheng/766/f2b6c769ba864511a41cfbf3418fa225.jpg)
我正在尝试使用Django send_email,smtp和gmail发送电子邮件.但是,代码返回SMTPConnectError(-1,b“)
我的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
我的views.py文件:
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")
当我将EMAIL_BACKEND更改为:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
它工作正常.此外,当我使用虚拟后端时,它不会显示错误.
我尝试过使用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_HOST_USER和EMAIL_HOST_PASSWORD添加到您拥有的内容中即可.如果您仍有问题,可能是您的网络阻止了您.操作系统或路由器上的防火墙.
内容总结
以上是互联网集市为您收集整理的python – Django send_mail返回SMTPConnectError全部内容,希望文章能够帮你解决python – Django send_mail返回SMTPConnectError所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。