Django-allauth:发送关于注册的欢迎电子邮件(未经验证)

use*_*000 11 django 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'
Run Code Online (Sandbox Code Playgroud)

是否有任何我错过的设置发送欢迎注册邮件?或者我必须通过我的观点传递它?似乎无法找到解决方法.任何帮助都会很棒.谢谢.

Aam*_*nan 23

没有没有这样的设置,但你可以收听user_signed_up信号,该信号将具有userrequestin参数.收到后,会向用户发送电子邮件.

将下面的代码放在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
Run Code Online (Sandbox Code Playgroud)


pen*_*rsr 7

allauth确实只发送确认邮件.但是,它确实区分了第一个(注册)确认邮件和后续邮件(例如,当用户添加第二个电子邮件地址时).

为此,allauth有一个"注册时的电子邮件确认"模板(account/email/email_confirmation_signup_message.txt,account/email/email_confirmation_signup_subject.txt).

使用内置模板时,此混合确认/注册/欢迎邮件与常规电子邮件确认模板相同,但您可以覆盖它并将欢迎消息放在那里.此外,设置ACCOUNT_EMAIL_VERIFICATION"optional".

如果所有这些都不符合您的需求,那么您可以连接user_signed_up信号并自己发送简单的欢迎邮件.