8

我很好奇是否有办法使用 django-registration 发送带有用户名、密码的激活电子邮件。首先我想修改注册表,但我需要一些例子。

4

4 回答 4

10

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然后应该能够发送电子邮件。

于 2010-05-25T14:48:43.227 回答
3

EMAIL_PORT = 465 是在几年前工作的。现在您需要将 587 端口与 gmail 一起使用。原因:Django 从一开始就不支持带有 SSL 的 SMTP。设置纯文本连接后,仅支持 STARTTLS 命令。但是,Gmail 不再支持端口 465 上的此选项。

于 2013-06-21T08:40:56.593 回答
2

希望这会对某人有所帮助。经过半小时的故障排除后,我意识到我在使用 django-registration 时也必须明确说明这一点 -

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

于 2015-08-13T09:46:16.977 回答
0

django-register-activate实现了与 django-registration 类似的功能。基本上它为用户注册、电子邮件验证和激活、用户登录和用户注销提供代码。

如果您需要示例来实现自己的代码,您可以查看 register_activate 中的 views.py 和 forms.py获得一些提示。

希望答案有帮助。如果您还有其他问题,请告诉我。

于 2016-05-17T01:07:32.080 回答