21

我的 Gitlab(第 5 版)没有发送任何电子邮件,我在试图弄清楚发生了什么时迷失了方向。日志没有提供有用的信息。我将其配置为 used sendmail

我写了一个通过 ActionMailer 发送电子邮件的小脚本(我猜它是 gitlab 用来发送电子邮件的,对吧?)。它会正确发送电子邮件。

但是,在我的 Gitlab 上,我可以保证 sendmail 甚至没有被调用。

我是否需要启用某些功能才能获得电子邮件通知?如何调试我的问题?

更新

问题是我在任何地方都找不到任何信息。事情只是默默地失败了。我在哪里可以找到某种日志?目录中的日志log没有提供有用的信息。

我的问题是,我怎样才能让 Gitlab 更冗长?我怎样才能让它告诉我发生了什么事?

更新 2

我刚刚发现该部分安排了很多邮件Background jobs。很多未加工的Sidekiq::Extensions::DelayedMailer。这是什么意思?为什么这些工作没有得到处理?

4

5 回答 5

18

今天偶然发现这个问题,这是我的研究:

尚不支持在 GitLab GUI 中调试 SMTP 连接。但是,有一个待处理的功能请求和一个命令行解决方案

设置所需的 SMTP 设置/etc/gitlab/gitlab.rb并运行gitlab-ctl reconfigure(请参阅https://docs.gitlab.com/omnibus/settings/smtp.html)。

启动控制台运行gitlab-rails console -e production

显示配置的交付方式(应该是:smtp)运行命令ActionMailer::Base.delivery_method。显示所有正在运行的已配置 SMTP 设置ActionMailer::Base.smtp_settings

发送测试邮件运行

Notify.test_email('youremail@example.com', 'Hello World', 'This is a test message').deliver_now

在 GitLab 的管理页面上,»后台作业«部分显示有关所有作业的信息。那里也列出了失败的 SMTP 连接。

请注意,您可能需要重新启动 GitLab 实例才能使用新配置的 SMTP 设置(在我的实例上,控制台能够发送邮件,GUI 需要重新启动)。运行gitlab-ctl restart以重新启动您的实例。

于 2018-04-06T13:27:29.983 回答
9

首先,我将说明我的问题:sidekiq 负责处理发送电子邮件。由于某种原因,我的 sidekiq 卡住了,重新启动它解决了问题。

我在哪里找到有关我在 Gitlab 上发现的问题的信息:

  1. 日志目录。它有一些信息。
  2. 在管理页面上,“后台作业”部分提供了有关 sidekiq 的信息。
  3. javascript 控制台(如果您的浏览器支持)也有有用的信息。仅当您的问题与 javascript 相关时。
  4. 如果你达到了这一点,你可以修改 Gitlab 的代码,这样你就可以“跟踪它”写入文件:

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

于 2013-04-21T20:35:32.043 回答
3

也许尝试在生产模式下启用交付错误,看看会发生什么

  config.action_mailer.raise_delivery_errors = true
于 2013-04-20T23:14:52.663 回答
1

在后台作业下的管理部分中,如果计划选项卡中有很多项目,请尝试重新启动sidekiq

cd /home/git/gitlab    
exec rake sidekiq:start RAILS_ENV=production
于 2014-08-04T20:13:59.483 回答
1

我有同样的问题,发现我需要修改 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。

于 2014-02-25T15:39:43.320 回答