【发布时间】:2017-05-29 11:36:19
【问题描述】:
我们有一个在 CentOS 上运行的 Django 应用程序。 我们使用 Django 身份验证和表单创建了一个新的密码重置功能。
这在开发服务器上工作时有效,但是当我将它部署到我们的生产环境时,没有发送带有唯一链接的邮件。 我已将问题归咎于使用 smtplib 的 Django 尝试使用 Postfix 通过端口 25 发送电子邮件,而不是使用指向 Google 服务器的 settings.py。
当我关闭 Postfix 时,尝试重置密码时连接被拒绝。
我们还有其他可以使用的邮件功能,只有重置密码不起作用。
我的设置.py:
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'my-mail@gmail.com'
EMAIL_HOST_PASSWORD = 'my-pass'
DEFAULT_FROM_EMAIL = 'my-mail@gmail.com'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
SERVER_EMAIL = 'my-mail@gmail.com'
视图来自 auth_views.password_reset,我从我的主 urls.py 文件中调用它。
解决方案: 原来我在项目的主目录中有另一个 settings.py 文件作为备份。 问题是我在 apache/django.wsgi 文件中添加了这个主目录,所以 Django 正在查看这个文件而不是更新的文件。 删除此文件后,一切正常。 感谢您的帮助。
【问题讨论】:
-
如果其他邮件功能正常,错误很可能隐藏在您的视图中。因此,如果您发布它,我们可以尝试提供帮助
-
我已编辑我的问题以反映您的回答。
标签: python django django-forms django-authentication