Имя хоста не соответствует серверному сертификату — ни одна из других тем не предлагает решений этой проблемы

Поиск тем на этом форуме не дал результатов. Похоже, это проблема, которую все обсуждают, но решений почти нет.

У меня есть рабочие учётные данные и работающий почтовый сервер DirectAdmin, который я использую для нескольких доменов. Поэтому, естественно, имя хоста не совпадает с именем домена отправителя.

Для домена и почтового сервера настроены сертификаты Let’s Encrypt. Записи SPF и DKIM также валидны.

Однако Discourse постоянно сталкивается с этой проблемой и не принимает мой почтовый сервер. Одна из других тем предлагала добавить в app.yml:

DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

Но и это не помогло.

Мой Discourse — это небольшое частное сообщество для группы технических коллег. В результате мне сложно получить поддержку от сервисов транзакционной почты. Поэтому мне необходимо, чтобы мой собственный почтовый сервер работал.

Я уже четыре месяца пробую разные способы решения этой проблемы. Настройка сервиса не должна быть такой сложной.

Есть ли у вас логи, которые вы можете предоставить, чтобы показать фактическую ошибку, с которой вы сталкиваетесь, и где она возникает?

Кажется, вы говорите о том, что Discourse отправляет письма через ваш почтовый сервер DirectAdmin. Если это так, то отправляющий домен не имеет отношения к SSL; серверу DirectAdmin просто нужен действительный сертификат для домена, указанного в параметре DISCOURSE_SMTP_ADDRESS в вашем файле app.yml приложения Discourse.

Когда вы добавляли DISCOURSE_SMTP_OPENSSL_VERIFY_MODE в app.yml, вы также пересоздавали контейнер? Любое изменение в app.yml требует пересоздания контейнера, прежде чем оно вступит в силу. Однако обратите внимание, что даже если этот параметр сработает, отключение проверки OpenSSL представляет собой риск для безопасности и не должно использоваться, если почтовый сервер не находится на той же машине или, по крайней мере, в той же закрытой сети.