Django SMTPServerDisconnected错误(密码重置时出错)(但在其他地方有效)

2024-04-19 10:26:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在django设置上设置自助密码重置。我已经将它配置为使用内置的密码重置系统,并在我的dev机器上测试了所有东西,并且运行良好。但是,在生产(即实际发送电子邮件)中,当我尝试获取密码重置电子邮件时,会抛出SMTPServerDisconnected错误:

[22/Sep/2017 15:04:59] ERROR [django.request:256] Internal Server Error: /password_reset/
Traceback (most recent call last):
  File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/utils/decorators.py", line 145, in inner
    return func(*args, **kwargs)
  File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/utils/decorators.py", line 110, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/contrib/auth/views.py", line 182, in password_reset
    form.save(**opts)
  File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/contrib/auth/forms.py", line 256, in save
    html_email_template_name=html_email_template_name)
  File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/contrib/auth/forms.py", line 213, in send_mail
    email_message.send()
  File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/core/mail/message.py", line 303, in send
    return self.get_connection(fail_silently).send_messages([self])
  File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 107, in send_messages
    sent = self._send(message)
  File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 123, in _send
    self.connection.sendmail(from_email, recipients, message.as_bytes(linesep='\r\n'))
  File "/usr/lib/python2.7/smtplib.py", line 735, in sendmail
    self.rset()
  File "/usr/lib/python2.7/smtplib.py", line 469, in rset
    return self.docmd("rset")
  File "/usr/lib/python2.7/smtplib.py", line 394, in docmd
    return self.getreply()
  File "/usr/lib/python2.7/smtplib.py", line 368, in getreply
    raise SMTPServerDisconnected("Connection unexpectedly closed")
SMTPServerDisconnected: Connection unexpectedly closed

我使用G-Suite(Google)作为SMTP中继;我使用的设置是:

^{pr2}$

奇怪的是,我可以用django在系统的其他地方发送电子邮件django.core.mail.send_mail()函数。在


Tags: djangoinpyselfsendlibpackageslocal
1条回答
网友
1楼 · 发布于 2024-04-19 10:26:19

问题是我没有设置DEFAULT_FROM_EMAIL,因此django试图从本地主机的电子邮件地址发送邮件,但Google的SMTP服务器默默地拒绝了。在send_mail()的其他用法中,我指定了“发件人”地址,因此这在那里没有出现问题。在

相关问题 更多 >