Я реализую отправителя электронной почты в моем flask проекте, который использует Flask -SocketIo Asynchronous with Eventlet, мой базовый c код выглядит так:
eventlet.monkey_patch(all=True)
app = Flask(__name__, template_folder="Templates")
socket: SocketIO = SocketIO(app, async_mode="eventlet", json=json)
@app.route('/')
def main():
msg = Message(subject="Hello",
sender=('Muninn', '--------@gmail.com'),
recipients=["----------@hotmail.com"],
body="Muninn system online")
print(mail.send(msg))
return 'Muninn Online'
if __name__ == '__main__':
socket.run(app, host='0.0.0.0', port=80, debug=True)
Когда я получаю доступ localhost/
eventlet дает мне эту ошибку:
wrap_socket() got an unexpected keyword argument '_context'
Traceback (most recent call last):
File "D:\Projetos\Hello\MuninnServer\venv\lib\site-packages\flask\app.py", line 1832, in full_dispatch_request
rv = self.dispatch_request()
File "D:\Projetos\Hello\MuninnServer\venv\lib\site-packages\flask\app.py", line 1818, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "D:\Projetos\Hello\MuninnServer\main.py", line 70, in main
print(mail.send(msg))
File "D:\Projetos\Hello\MuninnServer\venv\lib\site-packages\flask_mail.py", line 491, in send
with self.connect() as connection:
File "D:\Projetos\Hello\MuninnServer\venv\lib\site-packages\flask_mail.py", line 144, in __enter__
self.host = self.configure_host()
File "D:\Projetos\Hello\MuninnServer\venv\lib\site-packages\flask_mail.py", line 156, in configure_host
host = smtplib.SMTP_SSL(self.mail.server, self.mail.port)
File "C:\Users\caiof\AppData\Local\Programs\Python\Python38-32\lib\smtplib.py", line 1034, in __init__
SMTP.__init__(self, host, port, local_hostname, timeout,
File "C:\Users\caiof\AppData\Local\Programs\Python\Python38-32\lib\smtplib.py", line 253, in __init__
(code, msg) = self.connect(host, port)
File "C:\Users\caiof\AppData\Local\Programs\Python\Python38-32\lib\smtplib.py", line 339, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "C:\Users\caiof\AppData\Local\Programs\Python\Python38-32\lib\smtplib.py", line 1042, in _get_socket
new_socket = self.context.wrap_socket(new_socket,
File "D:\Projetos\Hello\MuninnServer\venv\lib\site-packages\eventlet\green\ssl.py", line 438, in wrap_socket
return GreenSSLSocket(sock, *a, _context=self, **kw)
File "D:\Projetos\Hello\MuninnServer\venv\lib\site-packages\eventlet\green\ssl.py", line 67, in __new__
ret = _original_wrap_socket(
TypeError: wrap_socket() got an unexpected keyword argument '_context'
wrap_socket() got an unexpected keyword argument '_context'
Когда я удаляю eventlet.monkey_patch(all=True)
, я могу отправить электронное письмо в обычном порядке