web-dev-qa-db-ja.com

Gitlabでの電子メール送信をデバッグするにはどうすればよいですか?

私のGitlab(バージョン5)は電子メールを送信しておらず、何が起こっているのかを理解しようとして迷っています。ログは有用な情報を提供しません。 sendmailを使用するように構成しました。

私はActionMailerを介して電子メールを送信する小さなスクリプトを書きました(これは、gitlabが電子メールを送信するために使用するものだと思いますよね?)。そして、それは電子メールを正しく送信します。

しかし、私のGitlabでは、sendmailが呼び出されないことさえ保証できます。

電子メール通知を受け取るために何かを有効にする必要がありますか?どうすれば問題をデバッグできますか?

更新

問題は、どこにも情報が見つからないことです。物事は静かに失敗します。ある種のログはどこにありますか? log dirのログは、有用な情報を提供しません。

私の質問は、Gitlabをより冗長にするにはどうすればよいですか?どうすれば、何が起こっているのか教えてもらうことができますか?

アップデート2

Background jobsセクションで予定されているメールをたくさん見つけました。未処理のSidekiq::Extensions::DelayedMailerがたくさんあります。どういう意味ですか?これらのジョブが処理されなかったのはなぜですか?

16
André Puel

最初に、私の問題が何であったかを説明します。sidekiqは、電子メールの送信の処理を担当します。なんらかの理由でsidekiqが動かなくなったため、再起動すると問題が解決しました。

Gitlabで見つけた問題に関する情報を見つけたところ:

  1. ログのディレクトリ。いくつかの情報があります。
  2. 管理ページの「バックグラウンドジョブ」セクションには、sidekiqに関する情報が表示されます。
  3. JavaScriptコンソール(ブラウザでサポートされている場合)にも役立つ情報があります。問題がJavaScriptに関連している場合のみ。
  4. そして、このポイントに到達したら、Gitlabのコードを変更して、ファイルに書き込んで「トレース」できるようにします。

    File.open('/tmp/logfile','a') { |file| file.write("Hello World!\n") }

8
André Puel

今日この問題に遭遇しました、これが私の研究です:

GitLab GUIでのSMTP接続のデバッグはまだサポートされていません。ただし、保留中の 機能リクエストコマンドラインソリューション があります。

必要なSMTP設定/etc/gitlab/gitlab.rbを設定し、gitlab-ctl reconfigureを実行します( https://docs.gitlab.com/omnibus/settings/smtp.html を参照)。

gitlab-Rails console productionを実行してコンソールを起動します。

コマンド:smtpを実行して、構成された配信方法(ActionMailer::Base.delivery_methodである必要があります)を表示します。 ActionMailer::Base.smtp_settingsを実行しているすべての構成済みSMTP設定を表示します。

テストメールを送信するには

Notify.test_email('[email protected]', 'Hello World', 'This is a test message').deliver_now

GitLabの管理ページの「バックグラウンドジョブ」セクションに、すべてのジョブに関する情報が表示されます。失敗したSMTP接続もそこにリストされます。

新しく構成されたSMTP設定を使用するには、GitLabインスタンスの再起動が必要になる場合があります(私のインスタンスでは、コンソールはメールを送信できましたが、GUIの再起動が必要でした)。 gitlab-ctl restartを実行してインスタンスを再起動します。

9
pixelbrackets

プロダクションモードで配信エラーを有効にして、何が起こるか確認してみてください

  config.action_mailer.raise_delivery_errors = true
2
Intrepidd

[スケジュール済み]タブに多数のアイテムがある場合は、バックグラウンドジョブの下の管理セクションでsidekiqを再起動してみてください。

cd /home/git/gitlab    
exec rake sidekiq:start Rails_ENV=production
1
bbodenmiller

同じ問題があり、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.

注:私はメールにeximを使用するDebian 7を実行しています。

1
VertigoRay