Django rest认证邮件验证



谁能解释一下如何为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服务器吗?

EDIT: (@McAbra注释后)

显然,这个设置不能发送电子邮件:

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

它只在django控制台输出中打印邮件。@McAbra给出的设置效果很好。但是在生产环境中,用gmail发送验证电子邮件是一种好的做法吗?我是不是应该创建noreply.myapp@gmail.com这样的电子邮件?

编辑2:

我的另一个问题是发送的邮件是空的。模板是在site-packagesallauthtemplatesaccountemail中呈现的。邮件标题是[http://localhost:8000/],没有内容。我在python控制台中没有错误。任何想法?

解决方案:

site-packagesallauthtemplatesaccountemail文件必须复制in your-apptemplatesaccountemail

如果你想发送真正的电子邮件,你需要有一个SMTP服务器。我喜欢用Gmail的SMTP服务器。settings.py将是:

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'gmail_username'
EMAIL_HOST_PASSWORD = 'password from https://security.google.com/settings/security/apppasswords'

从那里试试。如果没有帮助,我会试着进一步帮助。

我有发送电子邮件的问题,之后与电子邮件中的链接。您需要显式设置帐户确认邮件视图

下面是我在settings.py

中的设置
 ACCOUNT_AUTHENTICATION_METHOD = 'email'
 ACCOUNT_EMAIL_REQUIRED = True   
 ACCOUNT_USERNAME_REQUIRED = False
 ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
在urls . py

  from allauth.account.views import confirm_email as allauthemailconfirmation
  urlpatterns  = [
  url(r'^api/rest-auth/account-confirm-email/(?P<key>[-:w]+)/$',allauthemailconfirmation,
    name='account_confirm_email'),
  ]

您可以使用邮件收集器。

最新更新