首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法将Django设置为使用smtp.gmail.com

无法将Django设置为使用smtp.gmail.com
EN

Stack Overflow用户
提问于 2011-10-24 22:46:10
回答 5查看 16.4K关注 0票数 21

我一直在尝试让django与gmail的smtp服务器协同工作来发送邮件,但我总是得到这样的回溯。任何帮助都将不胜感激。

- settings.py

代码语言:javascript
复制
EMAIL_HOST = 'smtp.gmail.com'

EMAIL_HOST_USER = 'user@gmail.com'

EMAIL_HOST_PASSWORD = 'your-password'

EMAIL_PORT = 587

EMAIL_USE_TLS = True

- python shell

从django.core.mail导入EmailMessage的

email =EmailMessage(‘邮件测试’,‘这是一个测试’,to=‘somemail@omething.com’)

email.send()

代码语言:javascript
复制
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无法执行,我收到以下错误消息

代码语言:javascript
复制
**EMAIL_HOST_USER  = 'some.account@gmail.com'**
 ^
SyntaxError: invalid syntax
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-10-26 17:26:10

我最近设置了这个,并且有一个稍微不同的settings.py配置。

移动:

代码语言:javascript
复制
EMAIL_USE_TLS = True 

到EMAIL_HOST上面的顶部

添加:

代码语言:javascript
复制
DEFAULT_FROM_EMAIL = 'user@gmail.com'
SERVER_EMAIL = 'user@gmail.com'
票数 9
EN

Stack Overflow用户

发布于 2011-10-25 15:25:21

如下所示更改您的设置:

代码语言:javascript
复制
EMAIL_HOST = 'smtp.gmail.com'

EMAIL_HOST_USER = 'user'

EMAIL_HOST_PASSWORD = 'your-password'

EMAIL_PORT = 587

EMAIL_USE_TLS = True

然后尝试:

代码语言:javascript
复制
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,这意味着它起作用了。

票数 17
EN

Stack Overflow用户

发布于 2014-08-14 03:30:29

我也遇到了同样的问题,我花了半天的时间寻找解决方案。大多数建议的解决方案都在讨论相对于其他设置应该在哪里初始化EMAIL_USE_TLS。我不认为这是解决问题的办法。

我在这里找到了解决方案:https://support.google.com/accounts/answer/185833?hl=en,最后是https://security.google.com/settings/security/apppasswords

如果你是在本地机器上测试你的项目,你应该转到后面的链接,并启用“访问安全性较低的应用程序”。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7877452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档