Не удается отправить письма

Я не получаю электронные письма при создании учётной записи. Неужели я что-то сделал не так? В чём разница между SMTP-адресом и SMTP-доменом?

SMTP-адрес: user@example.com
SMTP-домен: example.com

Вы не могли бы мне помочь? Я использовал онлайн-инструмент SMTP, и всё работает отлично, но Discourse, похоже, не отправляет письма при регистрации.

Здравствуйте и добро пожаловать @ethhaqn :slight_smile:

Вы уже просмотрели руководство по устранению неполадок?

Я использовал команду telnet mail.theapi.tech 25, и она вернула 220 myhelper.tech ESMTP Postfix. Это старый домен, который я использовал для тестирования этой системы. Как вы думаете, это влияет на отправку писем? Если да, то где можно изменить домен? Снова отмечу, что это старый домен, но я не уверен, где именно мог ввести его, чтобы он возвращался при запуске telnet mail.theapi.tech 25.

Также стоит отметить, что утилита ./discourse-doctor сообщила о необычной ошибке и, похоже, не смогла решить мою проблему.

Кроме того, я не использовал ./discourse-setup для установки Discourse, так как порт 80 был занят. Вместо этого я вручную отредактировал файл containers/app.yml и выполнил команду ./launcher rebuild app.

Я выполнил команду tail shared/standalone/log/rails/production.log, и в логах указано:

Processing by FinishInstallationController#confirm_email as HTML
  Rendered finish_installation/confirm_email.html.erb within layouts/finish_installation (Duration: 0.7ms | Allocations: 255)
  Rendered layout layouts/finish_installation.html.erb (Duration: 6.7ms | Allocations: 2103)
Completed 200 OK in 8ms (Views: 7.4ms | ActiveRecord: 0.0ms | Allocations: 2735)
start
  Rendered layouts/email_template.html.erb (Duration: 0.1ms | Allocations: 34)
Delivered mail 0e5b023a-90f9-4c23-ae2b-488b4d70d907@theapi.tech (39.6ms)
Job exception: hostname "mail.theapi.tech" does not match the server certificate

fail

openssl s_client -connect mail.theapi.tech:25 -starttls smtp -showcerts

Ошибка проверки: самоподписанный сертификат

Поэтому необходимо установить DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none в вашем файле app.yml

Разве это не означает, что вам больше не нужно подтверждать свой адрес электронной почты?

Нет. Это заставит Discourse пропустить проверку, которая в данный момент не проходит.

А, вот и всё. Как мне получить SSL-сертификат? Кстати, это в моём app.yml:

image

Я думаю, что часть, где вы настраиваете свой собственный почтовый сервер, выходит за рамки этого форума.

Нет-нет, не на моём почтовом сервере. Имеется в виду, на моём самом сайте Discourse.

Пожалуйста, следуйте инструкциям по адресу Run other websites on the same machine as Discourse, и если это не поможет, откройте новую тему.

Привет! Я обновил локальный экземпляр Discourse до версии 2.9.0.beta4, но даже после добавления строки DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: "none" в файл containers/app.yml (и пересборки приложения) я продолжаю получать следующие ошибки:

  Rendered layouts/email_template.html.erb (Duration: 0.2ms | Allocations: 34)
Delivered mail 31c5b9eb-1077-4155-b040-314c4a8566cb@taverne.colorfulminis.com (11.3ms)
Job exception: SSL_connect returned=1 errno=0 state=error: certificate verify failed (self signed certificate)

Очевидно, что из-за этого мой экземпляр Discourse больше не может отправлять письма.
Есть ли какая-то известная проблема, связанная с этим?

К сведению: у меня работает предрелизная версия с 2.8.0.beta9 и точно такой же конфигурацией, и там письма отправляются без проблем.

Спасибо за помощь.

Привет, Алексис,

У меня точно такая же проблема на виртуальной машине (Ubuntu 22.04 с экземпляром Discourse 2.9.0.beta4 на базе Docker). Даже при настройке DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none в файле container/app.yml (и переменной окружения Docker $DISCOURSE_SMTP_OPENSSL_VERIFY_MODE, установленной в значение none), продолжает возникать ошибка certificate verify failed (self signed certificate).

Редактирование: к сведению, стабильная версия (2.8.3) работает как ожидалось.

Для справки: включение DISCOURSE_SMTP_ENABLE_START_TLS: true решило проблему на моей стороне.

Для тех, кто безуспешно искал ответы и попал сюда:
Только что я с удовольствием выяснил, что мой провайдер VPS-хостинга требует сначала включить исходящие порты для почты на только что установленной системе. Я об этом знал, но вспомнил только после ночного сна :wink:
Удачного хостинга! :smiley: