SMTPServerDisconnected at /account/signup/ using django-allauth on Google Cloud Run and Workspace smtp-relay
Я попробовал различные рекомендуемые варианты конфигурации, и мой SMTP-реле отлично работает локально, но не работает при развертывании в службе Google Cloud Run со следующей ошибкой:
SMTPServerDisconnected at /account/signup/
Connection unexpectedly closed
...
File "/usr/local/lib/python3.9/site-packages/django/core/mail/backends/smtp.py", line 67, in open
self.connection.starttls(keyfile=self.ssl_keyfile, certfile=self.ssl_certfile)
File "/usr/local/lib/python3.9/smtplib.py", line 764, in starttls
self.ehlo_or_helo_if_needed()
File "/usr/local/lib/python3.9/smtplib.py", line 607, in ehlo_or_helo_if_needed
(code, resp) = self.helo()
File "/usr/local/lib/python3.9/smtplib.py", line 436, in helo
(code, msg) = self.getreply()
File "/usr/local/lib/python3.9/smtplib.py", line 400, in getreply
raise SMTPServerDisconnected("Connection unexpectedly closed")
Соответствующие настройки для моей конфигурации SMTP из settings.py
:
EMAIL_HOST = 'smtp-relay.gmail.com'
EMAIL_HOST_USER = env('EMAIL_HOST_USER', default=None) # according to the traceback the credential env variables are pulling through correctly
EMAIL_HOST_PASSWORD = env('EMAIL_HOST_PASSWORD', default=None)
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
Я собираю из Dockerfile, поэтому в качестве дополнительной попытки исправить ситуацию я добавил EXPOSE 587/tcp
, что, похоже, не повлияло.
Этот doc от Google, кажется, предполагает, что ничто не блокирует его, хотя в нем нет явной ссылки на службу Cloud Run.
Меньшая безопасность приложений также включена, и я использую сгенерированный пароль приложения от учетной записи хоста электронной почты.
Не уверен, есть ли какие-либо настройки, которых мне не хватает для учета моей установки на google cloud run или dockerfile, поэтому любые идеи/исправления были бы очень признательны. При необходимости могу обновить информацию с другими конкретными сведениями.