python - 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
解决方案
推荐阅读
- go - 尝试编写自定义规则
- javascript - 内插值应用于所有 ngfor 元素的跨度文本内容
- google-chrome-extension - 发布扩展程序时如何修复“广泛的主机权限”?
- laravel - 如何在控制器内保存pdf并传递pdf补丁
- python - 为什么 PyCharm 返回退出代码 246?
- python-3.x - 从字母表中的所有字母中选择不同的名称
- javascript - 如果元素有类
- botframework - LUIS 应用无法训练 - 应用训练失败:l_general:重新训练
- sql - SQLite 慢速选择查询 - 如何使其更快
- ios - 带有本机 Okta 登录的 iOS - 在嵌入式 WKWebView 中打开链接