如何向注册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'
是否有任何我错过的设置发送欢迎注册邮件?或者我必须通过我的观点传递它?似乎无法找到解决方法。任何帮助都会很棒。感谢。
答案 0 :(得分:23)
没有此类设置,但您可以收听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
答案 1 :(得分:7)
allauth确实只发送确认邮件。但是,它确实区分了第一个(注册)确认邮件和后续邮件(例如,当用户添加第二个电子邮件地址时)。
为此目的,allauth有一个“注册时的电子邮件确认”
模板(account/email/email_confirmation_signup_message.txt
,account/email/email_confirmation_signup_subject.txt
)。
使用内置模板时,此混合确认/注册/欢迎邮件与常规电子邮件确认模板相同,但您可以覆盖它并将欢迎消息放在那里。此外,请将ACCOUNT_EMAIL_VERIFICATION
设置为"optional"
。
如果所有这些都不符合您的需求,那么您可以联系user_signed_up
信号并自行发送简单的欢迎邮件。