Django Rest Framework发送验证邮件

Mim*_*mic 3 python email django rest django-rest-framework

有没有办法发送验证邮件.当用户通过drf(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)
Run Code Online (Sandbox Code Playgroud)

在我的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
Run Code Online (Sandbox Code Playgroud)

但是电子邮件没有发送,我也想验证电子邮件服务,因此用户点击链接时会被激活.如何完成这些?

Ale*_*kov 5

如果你看这里:

控制台后端

控制台后端只是编写将发送到标准输出的电子邮件,而不是发送真实的电子邮件.默认情况下,控制台后端会写入stdout.通过在构造连接时提供stream关键字参数,可以使用不同的类似对象.

也:

此后端不适用于生产 - 它是为了方便开发时使用而提供的.

试试这个:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
Run Code Online (Sandbox Code Playgroud)

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