我很好奇是否有一种方法可以使用django-registration发送带有用户名和密码的已激活电子邮件。起初我考虑修改注册表单,但我需要一些示例。
我很好奇是否有一种方法可以使用django-registration发送带有用户名和密码的已激活电子邮件。起初我考虑修改注册表单,但我需要一些示例。
django-registration在内部使用以下代码来处理发送电子邮件:
send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [self.user.email])
如果您想要发送邮件,您需要在settings.py中指定DEFAULT_FROM_EMAIL的值。
此外,请注意以下内容:
使用EMAIL_HOST和EMAIL_PORT设置指定的SMTP主机和端口发送邮件。如果设置了EMAIL_HOST_USER和EMAIL_HOST_PASSWORD,则用于对SMTP服务器进行身份验证,并且EMAIL_USE_TLS设置控制是否使用安全连接。
因此,以下是我在settings.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-registration 应该能够发送电子邮件。
EMAIL_PORT='587'
。这让我调试了几个小时... - John CEMAIL_USE_TLS = True
时,我们必须使用EMAIL_PORT = 587
。 - Amit YadavEMAIL_PORT = 465在一些年前是可行的。现在你需要使用端口587与gmail进行通信。 原因:Django从一开始就不支持SMTP SSL。只有在建立明文连接之后才支持STARTTLS命令。然而,Gmail不再支持在端口465上使用此选项。
django-register-activate 实现了与 django-registration 类似的功能。基本上,它提供了用户注册、电子邮件验证和激活、用户登录和注销的代码。
如果您需要实现自己的代码示例,可以查看 register_activate 中的 views.py 和 forms.py 获取一些提示。
希望这个答案能够帮到您。如果您有进一步的问题,请告诉我。