python – Django send_mail返回SMTPConnectError
发布时间:2020-12-20 13:06:17 所属栏目:Python 来源:网络整理
导读:我正在尝试使用Django send_email,smtp和gmail发送电子邮件.但是,代码返回SMTPConnectError(-1,b“) 我的settings.py文件: ALLOWED_HOSTS = []DEFAULT_FROM_EMAIL = 'mygmailid'SERVER_EMAIL = 'mygmailid'EMAIL_USE_TLS = TrueEMAIL_BACKEND = 'django.cor
我正在尝试使用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:Python34libsite-packagesdjango-1.8.2- py3.4.eggdjangocoremail__ init__.py",line 62,in send_mail return mail.send() File "C:Python34libsite-packagesdjango-1.8.2- py3.4.eggdjangocoremailme ssage.py",line 303,in send return self.get_connection(fail_silently).send_messages([self]) File "C:Python34libsite-packagesdjango-1.8.2-py3.4.eggdjangocoremailba ckendssmtp.py",line 100,in send_messages new_conn_created = self.open() File "C:Python34libsite-packagesdjango-1.8.2-py3.4.eggdjangocoremailba ckendssmtp.py",line 58,in open self.connection = connection_class(self.host,self.port,**connection_params ) File "C:Python34libsmtplib.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添加到您拥有的内容中即可.如果您仍有问题,可能是您的网络阻止了您.操作系统或路由器上的防火墙. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |