Отправить письмо с django + gunicorn + nginx получить тайм-аут - PullRequest
1 голос
/ 07 февраля 2020

Я пытаюсь развернуть проект Django в AWS с gunicorn + nginx, но получаю ошибку тайм-аута. Мой почтовый сервер использует AWS SES с аутентификацией SMTP. Первые 2 письма отправляются нормально, после этого я получаю эту ошибку. Учетная запись уже является разблокированным ограничением для отправки электронной почты.

Локальный django сервер разработки работает нормально, он отправляет электронную почту в обычном режиме. В локальной виртуальной машине с такими же спецификациями EC2 письма отправляются нормально.

Работает в оболочке django Я получаю этот журнал при третьем отправленном письме:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "<console>", line 5, in sendE
  File "/home/ubuntu/myproj/share/forms.py", line 23, in share_email
    email_message.send()
  File "/home/ubuntu/.local/share/virtualenvs/myproj-rqmaW6Yv/lib/python3.7/site-packages/django/core/mail/message.py", line 291, in send
    return self.get_connection(fail_silently).send_messages([self])
  File "/home/ubuntu/.local/share/virtualenvs/myproj-rqmaW6Yv/lib/python3.7/site-packages/django/core/mail/backends/smtp.py", line 103, in send_messages
    new_conn_created = self.open()
  File "/home/ubuntu/.local/share/virtualenvs/myproj-rqmaW6Yv/lib/python3.7/site-packages/django/core/mail/backends/smtp.py", line 63, in open
    self.connection = self.connection_class(self.host, self.port, **connection_params)
  File "/usr/lib/python3.7/smtplib.py", line 251, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python3.7/smtplib.py", line 336, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python3.7/smtplib.py", line 307, in _get_socket
    self.source_address)
  File "/usr/lib/python3.7/socket.py", line 727, in create_connection
    raise err
  File "/usr/lib/python3.7/socket.py", line 716, in create_connection
    sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out
```
Any idea?

1 Ответ

1 голос
/ 07 февраля 2020

Хорошо, после тщательного тестирования я обнаружил, что экземпляры EC2 имеют ограничение по умолчанию для подключения к SMTP-порту. Измените порт с 25 на 587. Он отлично работает.

Дополнительная информация: https://aws.amazon.com/es/premiumsupport/knowledge-center/smtp-connectivity-timeout-issues-ses/

...