错误号111 连接被拒,密码重置操作非常简单

10 投票
6 回答
8878 浏览
提问于 2025-04-16 17:19

我刚接触django,现在想用管理员的密码重置功能来实现密码找回,但遇到了错误。根据我看到的其他人遇到类似问题的情况,这可能是某种端口或套接字的问题,但我不太确定该如何更改或修复它。我还得提一下,我是在虚拟的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

我知道我可能需要更改一些端口的设置,但不太清楚该怎么做才能解决这个错误。另外,抱歉代码的编辑不太好。提前谢谢大家。

6 个回答

2

可以看看这个链接 Email backends,它教你在开发模式下如何测试你的邮件。你可以把邮件内容打印到控制台或者保存到一个文件里。或者,你也可以设置一个smtp服务器,这样就能发送出去的邮件了。

4

密码重置功能需要一个smtp服务器来发送重置邮件。你可以自己搭建一个smtp服务器来发送邮件,或者选择其他不需要发送邮件的功能,比如设置密码的函数。

9

密码重置功能会尝试发送一封电子邮件。
你看到这个错误是因为它试图连接到一个邮件服务器,但连接被拒绝了。

撰写回答