Протестировал почту с помощью doctor — всё работает, письма приходят.
Попытался активировать учётную запись администратора, и Sidekiq показал следующее (токен скрыт):
{“type”=>“signup”, “user_id”=>1, “email_token”=>“REDACTED”, “to_address”=>nil, “current_site_id”=>“default”}
Не понимаю, почему to_address равен nil.
Буду очень признателен за любые советы, рекомендации или предложения!
Я, наверное, смогу найти это, но вы знаете, как называлась задача Sidekiq, которая вызвала отправку письма?
Если вы не можете получить доступ к сайту, потому что не получаете письмо с активацией, вы можете создать пользователя-администратора и пароль с помощью команды rake admin:create. Полная инструкция доступна здесь: Create an admin account from the console. Это должно позволить вам войти на сайт.
Похоже, вам всё же придётся разобраться с проблемами доставки электронной почты.
Извините за задержку с ответом. Задача, которая её вызвала, была: Jobs::CriticalUserEmail.
Я следовал руководству буквально. При регистрации учётной записи администратора письмо не было отправлено, а в Jobs::CriticalUserEmail содержалось: {“type”=>“signup”, “user_id”=>1, “email_token”=>“REDACTED”, “to_address”=>nil, “current_site_id”=>“default”}.
Я принудительно создал учётную запись администратора, чтобы увидеть, какие возникают проблемы. Результат следующий:
Тест Doctor работает, и письмо приходит.
Тест Digest работает, и письма приходят как в HTML-версии, так и в текстовом виде.
При любой регистрации письмо не отправляется, и в логе отправки писем в разделе администратора даже нет записи о том, что письмо было отправлено.
При попытке регистрации любого пользователя результат тот же:
Jobs::CriticalUserEmail содержит {“type”=>“signup”, “user_id”=>2, “email_token”=>“REDACTED”, “to_address”=>nil, “current_site_id”=>“default”}.
В конце файла /var/discourse/shared/standalone/log/rails/production.log показано следующее (с цензурой):
Processing by UsersController#check_username as JSON
Parameters: {"username"=>"bobo", "email"=>"REDACTED"}
Completed 200 OK in 2ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 636)
Started GET "/session/csrf" for REDACTEDPUBLICIP at 2024-09-26 08:13:03 +0000
Processing by SessionController#csrf as JSON
Completed 200 OK in 1ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 270)
Started POST "/u" for REDACTEDPUBLICIP at 2024-09-26 08:13:03 +0000
Processing by UsersController#create as */*
Parameters: {"name"=>"JJ", "email"=>"REDACTED", "password"=>"[FILTERED]", "username"=>"bobo", "password_confirmation"=>"[FILTERED]", "challenge"=>"REDACTED", "timezone"=>"Europe/London"}
Completed 200 OK in 335ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 23323)
Started POST "/login" for REDACTEDPUBLICIP at 2024-09-26 08:13:04 +0000
Processing by StaticController#enter as HTML
Parameters: {"username"=>"bobo", "password"=>"[FILTERED]", "redirect"=>"/u/account-created"}
Redirected to https://REDACTEDDOMAIN/u/account-created
Completed 302 Found in 1ms (ActiveRecord: 0.0ms | Allocations: 507)
Started GET "/u/account-created" for REDACTEDPUBLICIP at 2024-09-26 08:13:04 +0000
Processing by UsersController#account_created as HTML
Rendered layout layouts/application.html.erb (Duration: 14.0ms | Allocations: 4624)
Completed 200 OK in 21ms (Views: 15.1ms | ActiveRecord: 0.0ms | Allocations: 6821)
Started GET "/sidekiq/queues/critical" for REDACTEDPUBLICIP at 2024-09-26 08:13:15 +0000
В этом логе указаны корректные данные электронной почты в параметрах регистрации, но Sidekiq всё равно показывает “to_address”=>nil.
Есть ли какие-либо ошибки на странице «Журналы ошибок» вашего сайта? Эта страница находится по адресу /logs. Вы можете перейти туда через боковую панель администратора, выбрав пункт «Безопасность / Журналы ошибок».
Я могу описать вам точный процесс, который я использовал. Возможно, где-то в этом процессе я совершаю ошибку. Я полностью готов признать, что где-то допустил оплошность!
Есть домен. Это discourse.domain.dev (домен, конечно, скрыт)
Настроен почтовый аккаунт. У меня есть аккаунт Mailgun, поэтому я создал нового пользователя для SMTP. Адрес электронной почты: discourse@discourse.domain.dev
Есть сервер. Это последняя версия Ubuntu (Jammy Jellyfish)
apt install docker.io — выполнено
Git уже был установлен
Пользователь: root
Клонирование через git clone https://github.com/discourse/discourse_docker.git /var/discourse