首页 > 解决方案 > Flask Mail 在容器内不起作用

问题描述

我有发送邮件的 Flask 应用程序。我已经在应用程序中指定了我的 SMTP 服务器和端口。这在我的本地机器上运行良好。我想在容器内运行这个应用程序。我已经暴露了烧瓶的默认端口 5000,并在运行容器时将端口映射到本地机器。但它无法发送邮件,我得到的错误如下。

   Traceback (most recent call last):
  File "/root/.local/share/virtualenvs/ATEC-C7cLNkeV/lib/python3.8/site-packages/apscheduler/executors/base.py", line 125, in run_job
    retval = job.func(*job.args, **job.kwargs)
  File "/ATEC/application/routes.py", line 107, in weeklymail
    mail.send(msg)
  File "/root/.local/share/virtualenvs/ATEC-C7cLNkeV/lib/python3.8/site-packages/flask_mail.py", line 491, in send
    with self.connect() as connection:
  File "/root/.local/share/virtualenvs/ATEC-C7cLNkeV/lib/python3.8/site-packages/flask_mail.py", line 144, in __enter__
    self.host = self.configure_host()
  File "/root/.local/share/virtualenvs/ATEC-C7cLNkeV/lib/python3.8/site-packages/flask_mail.py", line 156, in configure_host
    host = smtplib.SMTP_SSL(self.mail.server, self.mail.port)
  File "/usr/local/lib/python3.8/smtplib.py", line 1034, in __init__
    SMTP.__init__(self, host, port, local_hostname, timeout,
  File "/usr/local/lib/python3.8/smtplib.py", line 253, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/local/lib/python3.8/smtplib.py", line 339, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/local/lib/python3.8/smtplib.py", line 1040, in _get_socket
    new_socket = socket.create_connection((host, port), timeout,
  File "/usr/local/lib/python3.8/socket.py", line 808, in create_connection
    raise err
  File "/usr/local/lib/python3.8/socket.py", line 796, in create_connection
    sock.connect(sa)
TimeoutError: [Errno 110] Operation timed out

标签: pythondockersocketsflask-mail

解决方案


推荐阅读