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

时间:2012-08-14 16:52:06

标签: 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

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

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

1 个答案:

答案 0 :(得分:3)

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

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

from registration.signals import user_activated, user_registered

user_registered.connect(<Hook your add email to celery task queue> )