Почта 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
. В этом случае вам, возможно, придется явно открыть этот порт.