Django-allauth: отправить приветственное письмо по регистрации (без проверки)

Как отправить приветственное письмо пользователю, который зарегистрируется в приложении django (используя django-allauth). Если я устанавливаю ACCOUNT_EMAIL_VERIFICATION = ("mandatory"), он отлично работает, и пользователь получает электронное письмо с подтверждением. Но поскольку я не требую проверки по электронной почте, пользователь должен просто зарегистрироваться и получить приветственное письмо.

settings.py -

ACCOUNT_AUTHENTICATION_METHOD = ("email")
ACCOUNT_EMAIL_VERIFICATION = ("none")
ACCOUNT_SIGNUP_PASSWORD_VERIFICATION  = False
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_USERNAME_REQUIRED = False
EMAIL_CONFIRMATION_SIGNUP = True
ACCOUNT_EMAIL_REQUIRED =True
LOGIN_REDIRECT_URL = '/'
LOGOUT_URL = '/'
ACCOUNT_LOGOUT_ON_GET =False
ACCOUNT_LOGOUT_REDIRECT_URL = '/'
SOCIALACCOUNT_QUERY_EMAIL = (ACCOUNT_EMAIL_REQUIRED)
SOCIALACCOUNT_AUTO_SIGNUP = True
SOCIALACCOUNT_AVATAR_SUPPORT = ( 'avatar' in INSTALLED_APPS)
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '##'
EMAIL_HOST_PASSWORD = '##'
EMAIL_PORT = 587
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

Есть ли какие-либо настройки, которые я пропустил, которые отправляют приветственную регистрационную почту? Или мне нужно передать это через мои взгляды? Возможно, Кант не выяснил, как это сделать. Любая помощь будет большой. Спасибо.

Ответ 1

Нет таких настроек, но вы можете прослушать сигнал user_signed_up, который будет иметь параметры user и request. Как только он будет получен, отправьте электронное письмо пользователю.

Поместите нижеприведенный код в файл models.py:

from allauth.account.signals import user_signed_up
from django.dispatch import receiver

@receiver(user_signed_up, dispatch_uid="some.unique.string.id.for.allauth.user_signed_up")
def user_signed_up_(request, user, **kwargs):
    # user signed up now send email
    # send email part - do your self

Ответ 2

allauth действительно отправляет письма с подтверждением. Но он различает первую (регистрационную) почту подтверждения и следующие (например, когда пользователь добавляет второй адрес электронной почты).

Для этого allauth имеет "подтверждение по электронной почте при регистрации",  шаблон (account/email/email_confirmation_signup_message.txt, account/email/email_confirmation_signup_subject.txt).

При использовании встроенных шаблонов это гибридное подтверждение/подписка/приветственная почта идентичны шаблону подтверждения обычной электронной почты, но вы можете переопределить его и разместить там свое приветственное сообщение. Кроме того, установите ACCOUNT_EMAIL_VERIFICATION на "optional".

Если все это не соответствует вашим потребностям, вы можете подключиться к сигналу user_signed_up и отправить обычную почту приветствия самостоятельно.