私のGitlab(バージョン5)は電子メールを送信しておらず、何が起こっているのかを理解しようとして迷っています。ログは有用な情報を提供しません。 sendmail
を使用するように構成しました。
私はActionMailerを介して電子メールを送信する小さなスクリプトを書きました(これは、gitlabが電子メールを送信するために使用するものだと思いますよね?)。そして、それは電子メールを正しく送信します。
しかし、私のGitlabでは、sendmailが呼び出されないことさえ保証できます。
電子メール通知を受け取るために何かを有効にする必要がありますか?どうすれば問題をデバッグできますか?
問題は、どこにも情報が見つからないことです。物事は静かに失敗します。ある種のログはどこにありますか? log
dirのログは、有用な情報を提供しません。
私の質問は、Gitlabをより冗長にするにはどうすればよいですか?どうすれば、何が起こっているのか教えてもらうことができますか?
Background jobs
セクションで予定されているメールをたくさん見つけました。未処理のSidekiq::Extensions::DelayedMailer
がたくさんあります。どういう意味ですか?これらのジョブが処理されなかったのはなぜですか?
最初に、私の問題が何であったかを説明します。sidekiqは、電子メールの送信の処理を担当します。なんらかの理由でsidekiqが動かなくなったため、再起動すると問題が解決しました。
Gitlabで見つけた問題に関する情報を見つけたところ:
そして、このポイントに到達したら、Gitlabのコードを変更して、ファイルに書き込んで「トレース」できるようにします。
File.open('/tmp/logfile','a') { |file| file.write("Hello World!\n") }
今日この問題に遭遇しました、これが私の研究です:
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
を実行してインスタンスを再起動します。
プロダクションモードで配信エラーを有効にして、何が起こるか確認してみてください
config.action_mailer.raise_delivery_errors = true
[スケジュール済み]タブに多数のアイテムがある場合は、バックグラウンドジョブの下の管理セクションでsidekiq
を再起動してみてください。
cd /home/git/gitlab
exec rake sidekiq:start Rails_ENV=production
同じ問題があり、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を実行しています。