我的Gitlab(第5版)没有发送任何电子邮件,我迷失了,试图弄清楚发生了什么。日志没有提供有用的信息。我将其配置为使用sendmail
。
我写了一个小脚本,通过ActionMailer发送电子邮件(我想这是gitlab用来发送电子邮件的,对吧?)。它正确发送电子邮件。
但是,在我的Gitlab上,我可以保证甚至不会调用sendmail。
我是否需要启用某些内容才能收到电子邮件通知?我该如何调试我的问题?
问题是我无法在任何地方找到任何信息。事情就是默默地失败了。我在哪里可以找到某种日志? log
目录中的日志没有提供有用的信息。
我的问题是,如何让Gitlab更加冗长?我怎样才能告诉我发生了什么?
我刚刚在Background jobs
部分发现了很多邮件。很多未经处理的Sidekiq::Extensions::DelayedMailer
。这是什么意思?为什么这些工作没有得到处理?
答案 0 :(得分:8)
首先,我将告诉我的问题:sidekiq负责处理发送电子邮件。由于某种原因,我的sidekiq卡住了,重新启动它解决了问题。
我在Gitlab上找到有关问题的信息:
如果你达到这一点,你可以修改Gitlab的代码,这样你就可以“追踪它”写入文件:
File.open('/tmp/logfile','a') { |file| file.write("Hello World!\n") }
答案 1 :(得分:5)
今天偶然发现了这个问题,这是我的研究:
尚不支持在GitLab GUI中调试SMTP连接。但是,有待处理的feature request和command line solution。
设置所需的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('youremail@example.com', 'Hello World', 'This is a test message').deliver_now
在GitLab的管理页面上,“后台作业”部分显示了有关所有作业的信息。此处也列出了失败的SMTP连接。
请注意,您可能需要重新启动GitLab实例才能使用新配置的SMTP设置(在我的实例上,控制台能够发送邮件,GUI需要重新启动)。运行gitlab-ctl restart
以重新启动您的实例。
答案 2 :(得分:2)
也许尝试在生产模式下启用交付错误,看看会发生什么
config.action_mailer.raise_delivery_errors = true
答案 3 :(得分: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.
注意:我正在运行Debian 7,它使用exim进行邮件。
答案 4 :(得分:1)
在后台作业下的管理部分中,如果“预定”选项卡中有大量项目,请尝试重新启动sidekiq
:
cd /home/git/gitlab
exec rake sidekiq:start RAILS_ENV=production