9

这里是 django 的新手,目前正在尝试使用 admin password_reset 函数实现密码恢复,但我遇到了错误。从我读到的关于其他有类似问题的人的信息来看,这是某种端口/套接字问题,但我不太确定如何更改或修复它。我应该提到我正在通过虚拟 ubuntu 运行它,不确定这是否与它有关。

Environment:

Request Method: POST
Request URL: http://127.0.0.1:8000/admin/password_reset/
Django Version: 1.1.4
Python Version: 2.6.6
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'homework.events',
 'django.contrib.admin']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware')


Traceback:
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in   get_response
  99.                     response = callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/contrib/auth/views.py" in password_reset
  116.             form.save(**opts)
    File "/usr/local/lib/python2.6/dist-packages/django/contrib/auth/forms.py" in save
  136.                 t.render(Context(c)), None, [user.email])
    File "/usr/local/lib/python2.6/dist-packages/django/core/mail.py" in send_mail
  407.                         connection=connection).send()
    File "/usr/local/lib/python2.6/dist-packages/django/core/mail.py" in send
  281.         return self.get_connection(fail_silently).send_messages([self])
    File "/usr/local/lib/python2.6/dist-packages/django/core/mail.py" in send_messages
  179.         new_conn_created = self.open()
    File "/usr/local/lib/python2.6/dist-packages/django/core/mail.py" in open
  144.                                            local_hostname=DNS_NAME.get_fqdn())
    File "/usr/lib/python2.6/smtplib.py" in __init__
  239.             (code, msg) = self.connect(host, port)
    File "/usr/lib/python2.6/smtplib.py" in connect
  295.         self.sock = self._get_socket(host, port, self.timeout)
    File "/usr/lib/python2.6/smtplib.py" in _get_socket
  273.         return socket.create_connection((port, host), timeout)
    File "/usr/lib/python2.6/socket.py" in create_connection
  561.     raise error, msg

Exception Type: error at /admin/password_reset/
Exception Value: [Errno 111] Connection refused

我知道我必须(可能)更改端口的某些内容,只是不确定如何修复错误。另外,我对代码编辑不佳表示歉意。提前致谢。

4

6 回答 6

8

密码重置功能尝试发送电子邮件。
您收到此错误是因为它尝试连接到电子邮件服务器,但连接被拒绝。

于 2011-05-10T00:54:18.707 回答
3

password_reset 功能需要 smtp 服务器来发送重置电子邮件。您可以设置一个 smtp 服务器来发送邮件,也可以选择其他不需要播种电子邮件的功能,例如 set_password 功能。

于 2011-05-10T05:17:29.727 回答
1

查看电子邮件后端以在开发模式下测试您的电子邮件。您可以将其打印到控制台或文件。或者,您必须为要发送的外发邮件设置一个 smtp 服务器。

于 2011-05-10T08:30:32.057 回答
0
EMAIL_BACKEND - 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST - 'smtp.gmail.com'
EMAIL_PORT - 587
EMAIL_USE_TLS - True
EMAIL_HOST_USER - "you@gmail.com"
EMAIL_HOST_PASSWORD - "get it from gmail app password bt setting 2 step authentication"

use = for - while using this code in settings.py
于 2019-08-13T14:01:34.000 回答
0

我面临着同样的问题。因为我忘记在 settings.py 中添加 EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 行

于 2020-06-09T17:29:22.740 回答
0

发送电子邮件检查密码重置。删除或评论电子邮件后端。添加并填写详细信息。它将起作用。

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

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'xxxxxxxxxxx@gmail.com'
EMAIL_HOST_PASSWORD ='xxxxx'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
于 2021-03-20T02:50:33.740 回答