Настройка отправки через QQ Mail: письма приходят, но в Discourse ошибка и происходит дублирование

Первоначальная инструкция по установке, которой я следовал:

Мои настройки:

  DISCOURSE_DEVELOPER_EMAILS: 'xxx@gmail.com'

  ## TODO: Настроить почтовый сервер
  ##       (используется для проверки новых аккаунтов, уведомлений, дайджестов и т. д.)
  ## обязательно: имя хоста SMTP-сервера, используемого для отправки писем
  DISCOURSE_SMTP_ADDRESS: smtp.qq.com
  ## раскомментируйте, чтобы изменить порт (по умолчанию 25)
  DISCOURSE_SMTP_PORT: 587
  ## USER_NAME / PASSWORD обязательны, если провайдер SMTP требует аутентификации
  ## ВНИМАНИЕ: символ '#' в пароле SMTP может быть неверно интерпретирован; убедитесь, что он находится внутри кавычек, например:
  ##   DISCOURSE_SMTP_PASSWORD: "#pass#ord"
  DISCOURSE_SMTP_USER_NAME: xxx@qq.com
  DISCOURSE_SMTP_PASSWORD: "xxx"
  ## раскомментируйте, чтобы включить неявный TLS при подключении, вероятно, необходимо для использования порта 465
  #DISCOURSE_SMTP_FORCE_TLS: true
  ## раскомментируйте, чтобы установить домен HELO/EHLO, настраивайте только если это требуется провайдером
  #DISCOURSE_SMTP_DOMAIN: discourse.example.com
  ## адрес, с которого отправляются уведомления
  DISCOURSE_NOTIFICATION_EMAIL: xxx@qq.com
  ## раскомментируйте, чтобы изменить проверку сертификата сервера
  #DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: peer # peer|none
  ## раскомментируйте, чтобы переопределить метод аутентификации
  DISCOURSE_SMTP_AUTHENTICATION: login # plain|login|cram_md5

Ситуация 1:

При попытке регистрации пользователя Discourse многократно отправляет письма.


Мне пришлось вручную завершать задачи повторных попыток в Sidekiq.

Ситуация 2:

Я попытался отправить тестовое письмо через внутренний почтовый ящик.
После нажатия кнопки «Отправить» появилось сообщение об ошибке.
Однако, когда я открыл почтовый ящик, письмо оказалось успешно доставленным.

Если кто-то сможет помочь мне решить эту проблему, я продолжу использовать почтовый ящик QQ; в противном случае мне придётся попробовать другой почтовый сервис.

Есть ли ошибки в yourforum.com/logs?

Ваша проблема напоминает 我搭建了discourse,激活了账户邮箱,为什么还是每隔一会儿不断发送激活账户信息的邮件??怎么配置解决这个bug - #23 by supermathie и Duplicate registration email issue

Спасибо за ответ. Два предоставленных вами примера почти идентичны моей ситуации. Я внимательно изучил соответствующий контент, но всё ещё не понимаю, как решить проблему.

В логах действительно есть ошибки.


Привет, извините за это. Я работаю над исправлением, чтобы выводить реальные сообщения об ошибках. Я отвечу здесь, когда изменения будут объединены.

Привет снова, PR был слит. Как только у вас будет обновлённый код, пожалуйста, дайте знать, если вы всё ещё не видите понятное для человека сообщение об ошибке.

Вот мой отчет о запуске doctor:
https://mathcollapse.20000816.xyz/ZWM4MzAzZjUzZDZjMGU1.txt

Вот обновленный лог ошибок:

Сообщение (2 копии)

SMTP Error Net::SMTPUnknownError с сообщением: 
 ответ: 


Трассировка стека

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/broadcast_logger.rb:218:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/broadcast_logger.rb:217:in `map'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/broadcast_logger.rb:217:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/broadcast_logger.rb:129:in `error'
/var/www/discourse/lib/email/sender.rb:308:in `rescue in send'
/var/www/discourse/lib/email/sender.rb:295:in `send'
/var/www/discourse/lib/tasks/emails.rake:230:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:279:in `block in execute'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:279:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:279:in `execute'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:199:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:199:in `invoke_with_call_chain'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/task.rb:188:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:188:in `invoke_task'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:138:in `block (2 levels) in top_level'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:138:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:138:in `block in top_level'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:147:in `run_with_threads'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:132:in `top_level'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:83:in `block in run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:214:in `standard_exception_handling'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/lib/rake/application.rb:80:in `run'
bin/rake:13:in `<top (required)>'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:59:in `load'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:59:in `kernel_load'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:452:in `exec'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor.rb:538:in `dispatch'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:35:in `dispatch'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:29:in `start'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/exe/bundle:28:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/exe/bundle:20:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'

Спасибо за помощь, но пока мне так и не удалось решить проблему с почтой QQ, поэтому я был вынужден переключиться на Gmail, и теперь всё работает безупречно.

qq почта не работает, у меня та же проблема. Использование Mailgun решает эту проблему.

Хм, черт, извините, что не выдали более понятную ошибку, но рад слышать, что вам всё же удалось это исправить. Я создал внутренний тикет для дальнейшего расследования и, возможно, обновлю документацию, чтобы предупредить об этом. Похоже, это повторяющаяся проблема именно с QQ Mail. За последние годы было множество сообщений о том, что QQ Mail вызывает ту же проблему.

Похоже, это общая проблема почтового сервиса QQ! Это не проблема настроек Discourse.