Ben*_*Ben 6 email django validation rest django-rest-auth
有人可以解释如何为 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
Run Code Online (Sandbox Code Playgroud)
我在我的 urls.py 中添加了这一行:
url(r'^accounts/', include('allauth.urls')),
Run Code Online (Sandbox Code Playgroud)
但是,当我注册此端点时:rest-auth/registration/,不会发送电子邮件,但会创建用户。发送电子邮件确认的好配置是什么?我必须有一个 SMTP 服务器吗?
编辑:(@McAbra 评论后)
显然,此设置无法发送电子邮件:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
Run Code Online (Sandbox Code Playgroud)
它只在 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
如果您想发送真实的电子邮件,您需要有一个 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'
Run Code Online (Sandbox Code Playgroud)
从那里开始尝试。如果没有帮助,我会尽力提供进一步的帮助。
| 归档时间: |
|
| 查看次数: |
6432 次 |
| 最近记录: |