Почта DJango работает в локальном, но не в производственном режиме

Ниже приведен мой код, который отправляет письмо моим пользователям:

mail = EmailMultiAlternatives(subject=subject, body=text_content, from_email="email@host.com", to=["email@host.com"], bcc=["email@host.com"])
mail.attach_file(model.document.path)
mail.attach_alternative(html_content, "text/html")
mail_status = mail.send()

А мой settings.py выглядит следующим образом:

EMAIL_HOST = "mail.host.com"
EMAIL_PORT = 587

EMAIL_HOST_USER = "email@host.com"
EMAIL_HOST_PASSWORD = str(os.getenv('EMAIL_HOST_PASSWORD'))

Проблема в том, что приведенный выше код работает абсолютно нормально на моей локальной машине Windows, но код зависает и не выдает никаких результатов при запуске на моем удаленном сервере под управлением Ubuntu (Linux).

Есть идеи, где я ошибаюсь?

Скорее всего, это проблема с портом. Лучший способ подтвердить это - использовать telnet клиент.

telnet mail.host.com 587

Если после выполнения этой команды вы не видите текста Connected, то проблема, скорее всего, связана с port. В этом случае вам, возможно, придется явно открыть этот порт.

Вернуться на верх