来自牧场主容器中的python客户端的smtp超时

时间:2017-12-31 17:57:45

标签: docker mailgun smtplib rancher

我有一个奇怪的问题,没有想法可能是错的,所以也许在这里写它可以帮助我提出想法。或者有人可以帮助我:)

我有一个在牧场主中运行的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}}

1 个答案:

答案 0 :(得分:4)

  

您好,

     

为了对您的服务器端口25取消阻止的请求做出积极响应,需要进行额外的验证。   ...

看起来提供商(Scaleway.com)阻止了该端口。

当我使用外部服务收发电子邮件时,我不知道托管公司正在这样做。无论如何,验证我的帐户,禁用阻止,硬重启服务器,它的工作原理。

感谢大家的评论/帮助!