Ошибка ввода-вывода - Flask-mail и работающий сервер с прокси
Я с очень и очень странной ошибкой...
У меня есть приложение фляги, использующее флеш-почту для отправки сообщений электронной почты.
На сервере RedHat я пытался использовать runserver (flask-manager) и gunicorn. Итак, у меня есть сервер Apache, подключающийся к этому приложению с помощью прокси.
Когда я запускаю приложение, используя любого пользователя (root или другой), приложение запускается и отправляет электронные письма в обычном режиме.
Но когда я закрываю сессию с сервером (выход в терминале), он останавливает отправку почты и выдает мне этот стек:
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 вообще не устанавливается знак равно
какие-нибудь другие идеи?
Спасибо!
1 ответ
Глядя на источник smtplib ( https://hg.python.org/cpython/file/2.7/Lib/smtplib.py), похоже, что происходит то, что вы пытаетесь записать в stderr, который может быть источником ошибки ввода-вывода при работе под сервером.
Если вы устанавливаете SMTP(...).debuglevel
попробуйте удалить эту строку где угодно.