通过Django-Registration发送激活email
-
04-10-2019 - |
题
我很好奇是否可以通过使用Django-Registration将用户名和密码发送激活的电子邮件。首先,我考虑了修改注册表格,但我需要一些例子。
解决方案
Django注册 在内部使用以下代码来处理发送电子邮件:
send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [self.user.email])
如果您想工作,则必须在设置中指定值default_from_email。
另外,请注意以下内容:
邮件是使用email_host和email_port设置中指定的SMTP主机和端口发送的。 email_host_user和email_host_password设置(如果设置)用于对SMTP服务器进行身份验证,并且email_use_use_tls设置控制是否使用了安全连接。
因此,举一个例子,这是我在stayings.py文件中使用的用来使用gmail帐户的内容:
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 465
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'my@gmail.com'
EMAIL_HOST_PASSWORD = 'my_emails_password'
Django注册 然后应该能够发送电子邮件。
其他提示
email_port = 465在几年前工作。现在,您需要将端口587与Gmail一起使用。原因:Django从一开始就不支持SSL的SMTP。仅在设置了普通文本连接后支持starttls命令。但是,Gmail不再支持端口465上的此选项。
希望这对某人有帮助。进行半小时的故障排除后,我意识到我在使用Django Registration时也必须明确说明这一点 -
email_backend ='django.core.mail.backends.smtp.emailbackend'
Django-Register-Activate 实现了与Django-Registration相似的功能。基本上,它为用户注册,电子邮件验证和激活,用户登录和用户注销提供代码。
如果您需要示例来实现自己的代码,则可以检查views.py and forms.py register_activate 获得一些提示。
希望答案有帮助。让我知道您是否还有其他问题。