la_*_*0ka 20 python django smtp
我一直试图让django与gmail的smtp服务器一起发送邮件,但我总是得到这个追溯.任何帮助将非常感谢.
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'user@gmail.com'
EMAIL_HOST_PASSWORD = 'your-password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
来自django.core.mail导入EmailMessage
email = EmailMessage('邮件测试','这是测试',= =''somemail@something.com'])
email.send()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/fiodorovich/Envs/fdict/lib/python2.7/site-packages/django/core/mail/message.py", line 251, in send
return self.get_connection(fail_silently).send_messages([self])
File "/home/fiodorovich/Envs/fdict/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 86, in send_messages
sent = self._send(message)
File "/home/fiodorovich/Envs/fdict/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 104, in _send
email_message.message().as_string())
File "/usr/local/lib/python2.7/smtplib.py", line 701, in sendmail
raise SMTPSenderRefused(code, resp, from_addr)
SMTPSenderRefused: (530, '5.7.0 Must issue a STARTTLS command first. z15sm10449686anl.15', 'webmaster@localhost')
编辑:进行unni建议的修改时出现新错误.shell将不会执行,我收到此错误消息
**EMAIL_HOST_USER  = 'some.account@gmail.com'**
 ^
SyntaxError: invalid syntax
unn*_*nni 16
像这样更改您的设置:
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'user'
EMAIL_HOST_PASSWORD = 'your-password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
然后尝试:
python manage.py shell
>>> from django.core.mail import EmailMessage
>>> email = EmailMessage('Mail Test', 'This is a test', to=['somemail@something.com'])
>>> email.send()
这应该返回状态1,这意味着它工作.
我最近设置了它,并有一个稍微不同的settings.py配置.
移动:
EMAIL_USE_TLS = True 
在EMAIL_HOST之上
加:
DEFAULT_FROM_EMAIL = 'user@gmail.com'
SERVER_EMAIL = 'user@gmail.com'
我有同样的问题,我搜索了半天找到解决方案.大多数建议的解决方案都在讨论与其他设置相关的初始化EMAIL_USE_TLS的位置.我不认为这是解决问题的方法.
我找到了解决方案:https: //support.google.com/accounts/answer/185833?hl = zh-CN ,最后是 https://security.google.com/settings/security/apppasswords
如果您在本地计算机上测试项目,则应转到后一个链接,并启用"访问安全性较低的应用程序".
| 归档时间: | 
 | 
| 查看次数: | 15362 次 | 
| 最近记录: |