Ошибка SMTP: сначала необходимо выполнить команду STARTTLS

У меня возникла похожая проблема. Вчера я около трёх часов отлаживал отправку электронной почты на новом экземпляре Discourse, но безрезультатно. Я пытаюсь отправлять письма через Fastmail с использованием STARTTLS на порту 587. Другие сервисы работают с теми же учётными данными.

При следующих настройках я не получаю ошибку «Must issue a STARTTLS command first»:

DISCOURSE_SMTP_ADDRESS: 'smtp.fastmail.com'
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: 'myuser@fastmail.fm'
DISCOURSE_SMTP_PASSWORD: 'mypass'
DISCOURSE_SMTP_ENABLE_START_TLS: true

После выполнения ./launcher rebuild app, при запуске ./discourse-doctor и попытке отправить письмо я получаю ответ с ошибкой 500 5.5.1 Invalid command.

Сегодня я начал отслеживать обмен данными с помощью tcpdump и заметил, что Discourse, по-видимому, на самом деле не использует STARTTLS. Вот что происходит при отправке восстановительного письма от Grafana:

< 220 smtp.fastmail.com ESMTP ready
> EHLO 9b5ba1569f77
< 250-smtp.fastmail.com
< 250-PIPELINING
< 250-SIZE 71000000
< 250-ENHANCEDSTATUSCODES
< 250-8BITMIME
< 250 STARTTLS
> STARTTLS
< ...[encrypted]

А в случае с Discourse происходит следующее:

< 220 smtp.fastmail.com ESMTP ready
> EHLO localhost
< 250-smtp.fastmail.com
< 250-PIPELINING
< 250-SIZE 71000000
< 250-ENHANCEDSTATUSCODES
< 250-8BITMIME
< 250 STARTTLS
> AUTH PLAIN [redacted]
< 500 5.5.1 Invalid command

Получается, что Discourse отправляет мои учётные данные в открытом виде через интернет, хотя в настройках включён STARTTLS? Это баг?

Также я заметил, что при запуске ./discourse-doctor в сводке «YML SETTINGS» вверху перечислены следующие параметры:

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.[redacted]
SMTP_ADDRESS=smtp.fastmail.com
DEVELOPER_EMAILS=sysadmin@[redacted]
SMTP_PASSWORD=[redacted]
SMTP_PORT=587
SMTP_USER_NAME=[redacted]@fastmail.fm
LETSENCRYPT_ACCOUNT_EMAIL=

Однако параметр DISCOURSE_SMTP_ENABLE_START_TLS нигде не упоминается, хотя он установлен в app.yml. Не знаю, связано ли это с данной проблемой.