django rest auth 电子邮件验证
django rest auth email validation
有人可以解释一下如何为 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 控制台中没有错误。有什么想法吗?
Solution for this point:
site-packages\allauth\templates\account\email
files must be copied
in 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'
从那里开始尝试。如果没有帮助,我会尽力提供进一步的帮助。
我在发送电子邮件时遇到问题,之后在电子邮件中遇到 link。您需要明确设置帐户确认电子邮件视图。
以下是我在 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'),
]
如果您想在本地查看电子邮件,可以使用 mailcatcher.me。
有人可以解释一下如何为 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 控制台中没有错误。有什么想法吗?
Solution for this point:
site-packages\allauth\templates\account\email
files must be copied inyour-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'
从那里开始尝试。如果没有帮助,我会尽力提供进一步的帮助。
我在发送电子邮件时遇到问题,之后在电子邮件中遇到 link。您需要明确设置帐户确认电子邮件视图。
以下是我在 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'),
]
如果您想在本地查看电子邮件,可以使用 mailcatcher.me。