Django Rest Framework 发送验证电子邮件

3

在通过Django Rest框架注册用户时,是否有发送验证邮件的方法?我在我的User模型中有以下代码:

from django.core.mail import send_mail
from config import settings

def email_user(self, subject, message, from_email=settings.DEFAULT_FROM_EMAIL, **kwargs):        
    send_mail(subject, message, from_email, [self.email], fail_silently=False, **kwargs)

在我的settings.py文件中:

EMAIL_USE_TLS = True
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_PASSWORD = '`132312123'
EMAIL_HOST_USER = 'mimic@gmail.com'
EMAIL_PORT = 587
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

但是邮件没有发送,我希望有验证电子邮件服务,这样当用户单击链接时就可以激活。如何实现这些?

1个回答

7
如果你看这里:https://docs.djangoproject.com/en/1.10/topics/email/
控制台后端
控制台后端不会发送真正的电子邮件,它只是将应该发送到标准输出的电子邮件写入其中。默认情况下,控制台后端会写入stdout。您可以在构建连接时提供stream关键字参数以使用其他类似流的对象。
此后端不适用于生产环境 - 它仅作为开发期间可用的便利功能提供。
请尝试使用此选项:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

2
好答案!我还建议查看发送异步邮件的电子邮件后端,这样您的用户就不必等待实际发送电子邮件(这是一个缓慢的过程)。我一直在无误地使用https://github.com/pinax/django-mailer。它使用数据库,设置非常简单。 - JuanXarg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接