gpt4 book ai didi

python - mail_admins 导致 Django/Apache2 连接被拒绝?

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:23 24 4
gpt4 key购买 nike

我正在 Ubuntu 后端上使用 Apache2 服务器运行 Django。在加载我的网站时,我收到 500 内部服务器错误。 Apache 日志如下所示:

AH00094: Command line: '/usr/sbin/apache2'    
mod_wsgi (pid=9568): Exception occurred processing WSGI script '/home/ubuntu/project/project/wsgi.py'.
Traceback (most recent call last):
File "/home/ubuntu/.virtualenvs/api/local/lib/python2.7/site- packages/django/core/handlers/wsgi.py", line 177, in __call__
response = self.get_response(request)
File "/home/ubuntu/.virtualenvs/api/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 216, in get_response
'request': request
File "/usr/lib/python2.7/logging/__init__.py", line 1178, in error
self._log(ERROR, msg, args, **kwargs)
File "/usr/lib/python2.7/logging/__init__.py", line 1271, in _log
self.handle(record)
File "/usr/lib/python2.7/logging/__init__.py", line 1281, in handle
self.callHandlers(record)
File "/usr/lib/python2.7/logging/__init__.py", line 1321, in callHandlers
hdlr.handle(record)
File "/usr/lib/python2.7/logging/__init__.py", line 749, in handle
self.emit(record)
File "/home/ubuntu/.virtualenvs/api/local/lib/python2.7/site-packages/django/utils/log.py", line 117, in emit
self.send_mail(subject, message, fail_silently=True, html_message=html_message)
File "/home/ubuntu/.virtualenvs/api/local/lib/python2.7/site-packages/django/utils/log.py", line 120, in send_mail
mail.mail_admins(subject, message, *args, connection=self.connection(), **kwargs)
File "/home/ubuntu/.virtualenvs/api/local/lib/python2.7/site-packages/django/core/mail/__init__.py", line 97, in mail_admins
mail.send(fail_silently=fail_silently)
File "/home/ubuntu/.virtualenvs/api/local/lib/python2.7/site-packages/django/core/mail/message.py", line 292, in send
return self.get_connection(fail_silently).send_messages([self])
File "/home/ubuntu/.virtualenvs/api/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 100, in send_messages
new_conn_created = self.open()
File "/home/ubuntu/.virtualenvs/api/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 58, in open
self.connection = connection_class(self.host, self.port, **connection_params)
File "/usr/lib/python2.7/smtplib.py", line 256, in __init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python2.7/smtplib.py", line 316, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "/usr/lib/python2.7/smtplib.py", line 291, in _get_socket
return socket.create_connection((host, port), timeout)
File "/usr/lib/python2.7/socket.py", line 571, in create_connection
raise err
error: [Errno 111] Connection refused

在我看来,调用 mail_admins 方法时会出现错误。如果需要的话,我可以发布 wsgi.py 或其他文件的内容。我的应用程序不涉及明确的电子邮件使用,因此我不确定这是如何发生的。有任何想法吗?谢谢。

最佳答案

Django 有一个特殊的记录器,用于在发生 500 错误时向管理员发送电子邮件。查看https://docs.djangoproject.com/en/1.9/topics/logging/#django.utils.log.AdminEmailHandler了解更多信息。

似乎抛出了一个异常,django 尝试通过向您发送电子邮件来传播该异常,但该电子邮件无法发送,因此您会收到另一个异常!可能真正的异常原因是在无法发送电子邮件导致的异常之前。但是,我建议修复您的电子邮件配置,以便 django 在发生 500 错误时能够向您发送这些电子邮件,这是一个很好的功能(也是像 Sentry 这样的完整异常跟踪器的第一步)。如果由于某种原因您无法从该服务器发送电子邮件,那么我建议至少将您的电子邮件后端( https://docs.djangoproject.com/en/1.9/topics/email/#email-backends )配置到任一控制台(EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend ') 或文件

EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'EMAIL_FILE_PATH = '/tmp/app-messages' # change this to a proper location

这样邮件后端就能工作。

关于python - mail_admins 导致 Django/Apache2 连接被拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38314365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com