# Сбой теста почты в discourse-doctor

**URL:** <https://meta.discourse.org/t/mail-test-failure-in-discourse-doctor/356453>\
**Category:** Product Support\
**Tags:** email\
**Created:** [09.Март.2025 05:32:07 UTC](https://meta.discourse.org/t/mail-test-failure-in-discourse-doctor/356453 "2025-03-09T05:32:07Z")\
**Posts on this page:** 1\
**Showing post:** 18

<div class="post-metadata">

**Author:** ![philion](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/philion/32/492984_2.png) [@philion](https://meta.discourse.org/u/philion)\
**Post date:** [10.Март.2025 18:24:02 UTC](https://meta.discourse.org/t/mail-test-failure-in-discourse-doctor/356453/18 "2025-03-10T18:24:02Z")

</div>

После множества тестов и большой помощи от @thoka я предлагаю следующее резюме:

Я могу запускать тесты SMTP, используя те же учётные данные, что и в `container/app.yml`, которые работают как с `swaks` ([Swaks - Swiss Army Knife for SMTP](https://jetmore.org/john/code/swaks/)), так и с примером кода на Ruby, предоставленным @thoka (см. ниже).

Эти тесты работают стабильно. Однако при попытке развернуть сервер Discourse (который не может отправить начальное письмо пользователю-администратору) или при использовании бота `discourse-doctor` возникают ошибки отправки почты:

```plaintext
==================== ПРОВЕРКА ПОЧТЫ ====================
Для надёжного теста получите адрес на http://www.mail-tester.com/
Или просто отправьте тестовое сообщение себе.
Адрес электронной почты для проверки? ('n' чтобы пропустить) [admin@burlyqna.org]:
Отправка письма на admin@burlyqna.org. . .
Проверка отправки на admin@burlyqna.org через smtp.mailfence.com:465, имя пользователя: xxx@mailfence.com с обычной аутентификацией.
Успешное подключение к SMTP-серверу.
Отправка на admin@burlyqna.org. . .
Отправка письма не удалась.
достигнут конец файла

```

Похоже, это ошибка конфигурации протокола, так как я могу отправлять тестовые письма, используя стандартные инструменты Ruby:

```ruby
require 'mail'

SMTP_SERVER = 'smtp.mailfence.com'
SMTP_PORT = 465
USERNAME = 'xyz'
PASSWORD = '...'

FROM = 'admin@burlyqna.org'
TO = 'testing@gmail.com'
SUBJECT = 'Test from Ruby'

BODY = "Hello,\n\nThis is a test email sent from Ruby over a SSL-secured connection.\n\nBest regards!"

Mail.defaults do
  delivery_method :smtp, {
    address: SMTP_SERVER,
    port: SMTP_PORT,
    user_name: USERNAME,
    password: PASSWORD,
    domain: "burlyqna.org",
    enable_starttls_auto: :false,
    authentication: :plain,
    ssl: true,
  }
end

begin
  puts 'Sending email...'
  puts "SMTP_SERVER: #{SMTP_SERVER}"
  puts "SMTP_PORT: #{SMTP_PORT}"
  puts "USERNAME: #{USERNAME}"
  puts "PASSWORD: #{PASSWORD}"
  puts "FROM: #{FROM}"
  puts "TO: #{TO}"

  mail = Mail.new do
    to TO
    from FROM
    subject SUBJECT
    body BODY
  end

  mail.deliver!
end

```

Текущие настройки SMTP в моём app.yml:

```plaintext
DISCOURSE_SMTP_ADDRESS: smtp.mailfence.com
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: xxx@mailfence.com
DISCOURSE_SMTP_PASSWORD: '...'
DISCOURSE_SMTP_FORCE_TLS: true # https://meta.discourse.org/t/cannot-send-email-problem-with-port-465/246004/8
DISCOURSE_SMTP_ENABLE_START_TLS: false # (необязательно, по умолчанию true)
DISCOURSE_SMTP_DOMAIN: burlyqna.org # (требуется некоторыми провайдерами)
DISCOURSE_NOTIFICATION_EMAIL: noreply@talk.burlyqna.org

```

---

_[View the full topic](https://meta.discourse.org/t/mail-test-failure-in-discourse-doctor/356453)._
