我有一个奇怪的问题,没有想法可能是错的,所以也许在这里写它可以帮助我提出想法。或者有人可以帮助我:)
我有一个在牧场主中运行的Django网站,过去几周我发现电子邮件无效。超时错误被提出。我使用mailgun.org作为SMTP服务器。
这是来自牧场主容器控制台的输出:
commit-hash
它只是挂起。添加超时当然会引发超时。
我猜想mailgun有问题。但是在本地运行相同图像上的相同代码(docker run -ti registry.gitlab.com/namespace/app:commit-hash /bin/sh
/app/app # ipython
Python 2.7.14 (default, Dec 19 2017, 22:36:09)
Type "copyright", "credits" or "license" for more information.
IPython 5.5.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: from smtplib import SMTP
In [2]: smtp = SMTP(host='smtp.mailgun.org', port=587)
In [3]:
匹配rancher容器上的代码)。
/app/app # telnet smtp.mailgun.org 587
telnet: can't connect to remote host (52.10.40.100): Operation timed out
/app/app #
我不知道它是如何工作的。如果他们阻止我的服务器的IP地址,我联系了mailgun支持。他们的答案是:
我们没有阻止生产IP。一个环境的唯一途径 可以工作,而不是另一个是你的两个方面有一些方面 环境不同,所以我们建议您查看 你身边的配置。
如果我使用相同的泊坞窗图像会有什么不同?我改变环境的唯一方法是env变量,但它们都不与python / system相关。
我认为错误是由我使用gevent设置的,但我昨天将其删除了。
请尝试" telnet smtp.mailgun.org 587"在docker console中
FROM python:2.7-alpine
ENV PYTHONUNBUFFERED 1
# Install dependencies
RUN apk update && \
apk add --no-cache build-base \
curl \
nano \
postgresql-dev \
vim
Dockerfile的第一行:
~# telnet smtp.mailgun.org 587
Trying 34.232.180.42...
Trying 54.164.235.211...
Trying 34.237.7.101...
telnet: Unable to connect to remote host: Connection timed out
来自主机的telnet:
{{1}}
答案 0 :(得分:4)
您好,
为了对您的服务器端口25取消阻止的请求做出积极响应,需要进行额外的验证。 ...
看起来提供商(Scaleway.com)阻止了该端口。
当我使用外部服务收发电子邮件时,我不知道托管公司正在这样做。无论如何,验证我的帐户,禁用阻止,硬重启服务器,它的工作原理。
感谢大家的评论/帮助!