IO 错误 - Flask-mail 和 运行 服务器有代理
IO Error - Flask-mail and running server with proxy
我有一个非常非常奇怪的错误...
我有一个使用 flask-mail 发送电子邮件的 flask 应用程序。
在 RedHat 服务器中,我尝试使用 运行server (flask-manager) 和 gunicorn。所以我有一个 apache 服务器使用代理连接到这个应用程序。
当我 运行 应用程序时,使用任何用户(root 或其他),应用程序 运行s 并且它正常发送电子邮件。
但是当我关闭与服务器的会话(在终端中退出)时,它停止发送邮件并给我这个堆栈跟踪:
in send_mail
return mail.send(msg)
File "/usr/local/lib/python2.7/site-packages/flask_mail.py", line 415, in send
with self.connect() as connection:
File "/usr/local/lib/python2.7/site-packages/flask_mail.py", line 123, in __enter__
self.host = self.configure_host()
File "/usr/local/lib/python2.7/site-packages/flask_mail.py", line 144, in configure_host
host.login(self.mail.username, self.mail.password)
File "/usr/local/lib/python2.7/smtplib.py", line 575, in login
self.ehlo_or_helo_if_needed()
File "/usr/local/lib/python2.7/smtplib.py", line 535, in ehlo_or_helo_if_needed
if not (200 <= self.ehlo()[0] <= 299):
File "/usr/local/lib/python2.7/smtplib.py", line 406, in ehlo
self.putcmd(self.ehlo_msg, name or self.local_hostname)
File "/usr/local/lib/python2.7/smtplib.py", line 336, in putcmd
self.send(str)
File "/usr/local/lib/python2.7/smtplib.py", line 320, in send
print>>stderr, 'send:', repr(str)
IOError: [Errno 5] Input/output error
运行 经理:
- python myapp.py
运行我用的gunicorn:
- gunicorn -w 2 -b 0.0.0.0:8388 myapp:app
我真的被困在这里..因为我使用 2 个不同的容器进行测试...我没有任何其他想法来解决它...使用 wsgi 我无法让它在这个服务器上工作,因为 lib根本不要安装 =(
还有其他想法吗?
谢谢!
查看 smtplib 源代码 (https://hg.python.org/cpython/file/2.7/Lib/smtplib.py#l324),看起来 正在发生的事情是您正在尝试写入 stderr,这可能是 I/O 在服务器下 运行 时出错。
如果您在任何地方设置 SMTP(...).debuglevel
,请尝试删除该行。
我有一个非常非常奇怪的错误...
我有一个使用 flask-mail 发送电子邮件的 flask 应用程序。
在 RedHat 服务器中,我尝试使用 运行server (flask-manager) 和 gunicorn。所以我有一个 apache 服务器使用代理连接到这个应用程序。
当我 运行 应用程序时,使用任何用户(root 或其他),应用程序 运行s 并且它正常发送电子邮件。
但是当我关闭与服务器的会话(在终端中退出)时,它停止发送邮件并给我这个堆栈跟踪:
in send_mail
return mail.send(msg)
File "/usr/local/lib/python2.7/site-packages/flask_mail.py", line 415, in send
with self.connect() as connection:
File "/usr/local/lib/python2.7/site-packages/flask_mail.py", line 123, in __enter__
self.host = self.configure_host()
File "/usr/local/lib/python2.7/site-packages/flask_mail.py", line 144, in configure_host
host.login(self.mail.username, self.mail.password)
File "/usr/local/lib/python2.7/smtplib.py", line 575, in login
self.ehlo_or_helo_if_needed()
File "/usr/local/lib/python2.7/smtplib.py", line 535, in ehlo_or_helo_if_needed
if not (200 <= self.ehlo()[0] <= 299):
File "/usr/local/lib/python2.7/smtplib.py", line 406, in ehlo
self.putcmd(self.ehlo_msg, name or self.local_hostname)
File "/usr/local/lib/python2.7/smtplib.py", line 336, in putcmd
self.send(str)
File "/usr/local/lib/python2.7/smtplib.py", line 320, in send
print>>stderr, 'send:', repr(str)
IOError: [Errno 5] Input/output error
运行 经理:
- python myapp.py
运行我用的gunicorn:
- gunicorn -w 2 -b 0.0.0.0:8388 myapp:app
我真的被困在这里..因为我使用 2 个不同的容器进行测试...我没有任何其他想法来解决它...使用 wsgi 我无法让它在这个服务器上工作,因为 lib根本不要安装 =(
还有其他想法吗?
谢谢!
查看 smtplib 源代码 (https://hg.python.org/cpython/file/2.7/Lib/smtplib.py#l324),看起来 正在发生的事情是您正在尝试写入 stderr,这可能是 I/O 在服务器下 运行 时出错。
如果您在任何地方设置 SMTP(...).debuglevel
,请尝试删除该行。