Django-registration - 以异步方式发送电子邮件

Val*_*ior 6 python django django-registration

所以,我在我的项目中使用django-registration来启用我正在构建的应用程序中的用户自注册。我已将 django-registration 配置为向注册用户发送确认电子邮件。

我的settings.py

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'myUser@myCompany.com'
EMAIL_HOST_PASSWORD = 'apassword'
...
ACCOUNT_ACTIVATION_DAYS = 7
Run Code Online (Sandbox Code Playgroud)

但是,在用户填写注册表并单击注册按钮后,页面会一直等待电子邮件发送过程。看起来只有在发送电子邮件后才会收到响应(确认页面)。

我已经阅读了另一个线程,该线程显示了如何在线程中发送电子邮件。有没有办法使用 django-registration 发送电子邮件,以便在发送电子邮件之前不会阻止表单注册提交的响应?我的意思是,我不想修改它django-registration本身。

Pra*_*kar 4

您应该使用Django Mailer对电子邮件的发送进行排队。

或者,您可以使用Celery 和 Django将电子邮件排队到 SMTP 服务器或使用Amazon SES

from registration.signals import user_activated, user_registered

user_registered.connect(<Hook your add email to celery task queue> )
Run Code Online (Sandbox Code Playgroud)