2012-08-14 3 views
4

그래서 저는 건물에있는 응용 프로그램에서 사용자 자체 등록을 활성화하기 위해 내 프로젝트에 django-registration을 사용하고 있습니다. 등록 된 사용자에게 확인 이메일을 보내도록 장고 등록을 구성했습니다. 내 settings.pyDjango 등록 - 비동기 방식으로 전자 메일 보내기

:

EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'apassword' 
... 
ACCOUNT_ACTIVATION_DAYS = 7 

그러나, 사용자가 등록 양식을 채우고 등록 버튼을 클릭 한 후, 페이지가 프로세스를 보내는 이메일을 기다리고 유지합니다. 전자 메일을 보낸 후에 만 ​​응답 (확인 페이지)이 수신 된 것처럼 보입니다.

나는 스레드에서 이메일을 보내는 방법을 보여주는 또 다른 thread을 읽었습니다. 장고 등록을 사용하여 전자 메일을 보낼 수있는 방법이 있습니까? 양식 등록 제출에 대한 응답이 전자 메일을 보낼 때까지 차단되지 않도록하는 방법? 내 말은, django-registration 자체를 수정하고 싶지는 않습니다.

답변

3

Django Mailer을 사용하여 이메일 전송을 대기시켜야합니다.

또는 당신은 SMTP 서버에 이메일을 대기열에 Celery with Django를 사용하거나 사용할 수 Amazon SES

from registration.signals import user_activated, user_registered 

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

그것은 장고 메일러를 사용하는, 모양, 내가 장고 등록에 send_mail 가져 오기를 수정해야합니다, 내가 맞습니까? –

+1

예. https://bitbucket.org/seanoc/django-registration/src/35091bf234e9/registration/models.py보기 '의 send_email 경우 : 경우 settings.INSTALLED_APPS에서 "메일러" 메일러 수입에서 다른 send_mail : 장고에서. core.mail import send_mail ' –