Как я могу отлаживать отправку электронной почты в Gitlab?
My Gitlab (версия 5) не отправляет никаких электронных писем, и я теряюсь, пытаясь понять, что происходит. Журналы не дают никакой полезной информации. Я настроил его на использование sendmail
.
Я написал небольшой script, который отправляет e-mail через ActionMailer (я думаю, это то, что gitlab использует для отправки электронной почты, верно?). И он отправляет электронное письмо правильно.
Но, по моему Gitlab, я могу гарантировать, что sendmail даже не вызывается.
Нужно ли мне активировать что-то, чтобы получать уведомления по электронной почте? Как я могу отладить мою проблему?
Update
Проблема в том, что я нигде не могу найти какую-либо информацию. Дело просто терпит неудачу. Где я могу найти какой-то журнал? Журналы в каталоге log
не содержат никакой полезной информации.
Мой вопрос: как я могу сделать Gitlab более подробным? Как я могу заставить его рассказать мне, что происходит?
Обновление 2
Я только что нашел много писем, запланированных в разделе Background jobs
. Много необработанных Sidekiq::Extensions::DelayedMailer
. Что это значит? Почему эти задания не обрабатывались?
Ответы
Ответ 1
Во-первых, я расскажу, в чем была моя проблема: Sidekiq отвечает за обработку отправки электронной почты. По какой-то причине мой sidekiq застрял, перезапуск решил проблему.
Где я нашел информацию о проблемах, которые я нашел в Gitlab:
- Диаграммы журналов. Он имеет несколько сведений.
- На странице администратора раздел "Справочные задания" содержит информацию о sidekiq.
- Консоль javascript (если ваш браузер поддерживает ее) также имеет полезную информацию. Только если ваша проблема связана с javascript.
-
И если вы достигнете этой точки, вы можете изменить код Gitlab, чтобы вы могли "проследить" его запись в файл:
File.open('/tmp/logfile','a') { |file| file.write("Hello World!\n") }
Ответ 2
Возможно, попробуйте включить ошибки доставки в режиме производства и посмотреть, что произойдет
config.action_mailer.raise_delivery_errors = true
Ответ 3
У меня была такая же проблема, и я обнаружил, что мне нужно mod application.rb:
diff --git a/config/application.rb b/config/application.rb
index d85bcab..274976f 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -11,6 +11,8 @@ end
module Gitlab
class Application < Rails::Application
+ config.action_mailer.sendmail_settings = { :arguments => "-i" }
+
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
Примечание. Я запускаю Debian 7, который использует exim для почты.
Ответ 4
В разделе admin в разделе "Фоновые задания", если у вас много элементов на вкладке "Запланировать", попробуйте перезапустить sidekiq
:
cd /home/git/gitlab
exec rake sidekiq:start RAILS_ENV=production