2017-12-31 190 views
8

Tôi có một vấn đề kỳ lạ không có ý tưởng gì có thể sai, vì vậy có thể viết nó ở đây có thể giúp tôi đưa ra ý tưởng. Hoặc ai đó có thể giúp tôi :)thời gian chờ smtp từ khách hàng python trong thùng chứa trang trại

Tôi có trang web Django đang chạy trong trang trại và trong vài tuần qua, tôi nhận thấy email không hoạt động. Lỗi hết thời gian chờ được nâng lên. Tôi đang sử dụng mailgun.org làm máy chủ SMTP.

Đây là sản lượng từ giao diện điều khiển chứa trại:

/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) 

Và nó chỉ bị treo. Thêm thời gian chờ tăng thời gian chờ của khóa học.

Tôi đoán có điều gì đó sai với mailgun. Nhưng chạy cùng một mã trên cùng một ảnh cục bộ hoạt động (commit-hash khớp với mã trên vùng chứa trang trại).

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]: 

Tôi không hiểu cách hoạt động. Tôi liên lạc với hỗ trợ mailgun với một câu hỏi nếu họ chặn địa chỉ ip của máy chủ của tôi. Câu trả lời của họ:

Chúng tôi không chặn IP sản xuất. Cách duy nhất một môi trường có thể hoạt động và không phải môi trường nào khác là có một số khía cạnh của hai môi trường khác nhau, vì vậy chúng tôi khuyên bạn nên xem lại các cấu hình ở bên cạnh bạn.

Điều gì có thể khác ở đó nếu tôi đang sử dụng cùng hình ảnh trình docker? Chỉ có cách tôi thay đổi môi trường là các biến env, nhưng không có biến nào trong số chúng có liên quan đến python/system.

Tôi nghĩ rằng lỗi đã được cased bởi tôi bằng cách sử dụng gevent, nhưng tôi loại bỏ nó ngày hôm qua.


Vui lòng thử "telnet smtp.mailgun.org 587" trong Docker console

/app/app # telnet smtp.mailgun.org 587 
telnet: can't connect to remote host (52.10.40.100): Operation timed out 
/app/app # 

dòng đầu tiên của Dockerfile:

FROM python:2.7-alpine 

ENV PYTHONUNBUFFERED 1 

# Install dependencies 
RUN apk update && \ 
    apk add --no-cache build-base \ 
     curl \ 
     nano \ 
     postgresql-dev \ 
     vim 

telnet từ máy chủ:

~# 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 
+0

Vui lòng thử "telnet smtp.mailgun.org 587 "trong bảng điều khiển docker và đăng kết quả – ffeast

+0

@ffeast được thêm vào câu hỏi – Lucas03

+0

Có vẻ như cổng gửi 587 bị chặn trên đường đến' smtp.mailgun.org'. Bạn có thể thử cùng lệnh 'telnet' từ máy chủ nơi chứa không ? – Nickolay

Trả lời

3

Xin chào,

Để đáp ứng yêu cầu của bạn thuận lợi để mở khóa cổng 25 của máy chủ của bạn, xác minh bổ sung là cần thiết. ...

Có vẻ như nhà cung cấp (Scaleway.com) đã chặn cổng đó.

Tôi không biết các công ty lưu trữ đang làm điều này, khi tôi đang sử dụng dịch vụ bên ngoài cho email. Dù sao, xác minh tài khoản của tôi, vô hiệu hóa chặn, máy chủ khởi động lại cứng và nó hoạt động.

Cảm ơn tất cả các bạn đã nhận xét/trợ giúp!

Các vấn đề liên quan