【问题标题】:Errno 111 Connection refused with a very basic password resetErrno 111 Connection refused with a very basic password reset
【发布时间】:2011-08-22 01:58:54
【问题描述】:

这里是 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

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

【问题讨论】:

标签: python django django-admin password-recovery change-password


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 该链接对我无效。
      【解决方案4】:
      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
      

      【讨论】:

        【解决方案5】:

        我也遇到了同样的问题。因为我忘了补充 EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 行到 settings.py

        【讨论】:

          【解决方案6】:

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

          # 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
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-10-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-07-30
            • 2017-01-13
            • 2021-09-06
            • 2016-01-21
            相关资源
            最近更新 更多