【发布时间】:2017-02-20 08:44:38
【问题描述】:
有人可以解释如何为 django rest auth 设置电子邮件验证吗? 我的 settings.py 包含:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
我已经在我的 urls.py 中添加了这一行:
url(r'^accounts/', include('allauth.urls')),
但是当我在这个端点注册时:rest-auth/registration/,电子邮件没有发送,但是用户被创建了。
发送电子邮件确认的好配置是什么?我必须要有 SMTP 服务器吗?
编辑:(@McAbra 评论后)
显然,此设置无法发送电子邮件:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
它只在 django 控制台输出中打印邮件。
@McAbra 给出的设置效果很好。
但是在生产环境中,用gmail发送验证邮件是一个好习惯吗?
我是否只是创建电子邮件,例如noreply.myapp@gmail.com?
编辑 2:
我的另一个问题是发送的邮件是空的。该模板在site-packages\allauth\templates\account\email 中提供。电子邮件标题为[http://localhost:8000/],但没有内容。我在 python 控制台中没有错误。有什么想法吗?
针对这一点的解决方案:
site-packages\allauth\templates\account\email文件必须被复制 在your-app\templates\account\email
【问题讨论】:
-
只是为了确保:您不会期待真正的电子邮件,对吧?如果您使用您指定的
EMAIL_BACKEND,您将在控制台中打印出一封“电子邮件”。 -
我想设置一个通过电子邮件验证的注册。我正在寻找一种解决方案,将我的配置设置为向用户发送验证电子邮件,然后继续验证以激活用户帐户。
-
好的,所以您确实在控制台中打印了一封电子邮件,但您想将实际电子邮件发送到真实邮箱?
-
是的,就是这样。但我刚刚检查过,我的控制台中没有打印任何内容。我会更新我的帖子。
-
哦...我认为这是 Django allauth 而不是“rest auth”。
标签: django rest validation email django-rest-auth