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
Vui lòng thử "telnet smtp.mailgun.org 587 "trong bảng điều khiển docker và đăng kết quả – ffeast
@ffeast được thêm vào câu hỏi – Lucas03
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