Gerrit未发送电子邮件

3

我已经搭建了一个Gerrit服务器,并尝试让它发送邮件(对于所有事件)。但由于某些原因,Gerrit没有发送任何邮件。error_logs没有显示任何数据,这意味着它甚至没有尝试发送电子邮件。

以下是我的All-Projects项目配置的相关部分:

[notify "demo"]
    email = me@company.com
    type = all  

这是我的gerrit.config配置文件:

[gerrit]  
    basePath = git  
    canonicalWebUrl = http://hostname:8443/  
[database]  
    type = h2  
    database = db/ReviewDB  
    connectionPool = true  
    poolLimit = 128  
[index]  
    type = LUCENE  
[auth]  
    type = LDAP  
[ldap]  
    poolDebug = all  
    server = ldap://nod.company.com  
    accountBase = cn=users,dc=company,dc=com  
    accountEmailAddress = mail  
    referral = follow  
[sendemail]  
    smtpServer = relay.company.com  
     smtpServerPort = 25  
     smtpUser = my_username  
[container]  
     user = gerrit2  
     javaHome = /usr/lib/jvm/java-7-openjdk-amd64/jre  
     heapLimit = 2g  
[sshd]  
     listenAddress = *:29419  
     maxConnectionPerUser = 256  
[automerge]  
     botEmail = me@company.com  
[download]  
     scheme = ssh  
[httpd]  
     listenUrl = http://*:8443/  
     maxThreads = 128  
[cache]  
         directory = cache  
[gitweb]  
     cgi = /usr/share/gitweb/gitweb.cgi 

环境:Ubuntu 14.04和Gerrit 2.11.6。

我已经尝试在此服务器上使用命令行发送电子邮件,这很顺利。

我的所有个人项目都继承自All-Projects的访问权限。我甚至尝试将电子邮件部分添加到每个单独的项目中,但也没有帮助。

我的同事拥有自己的Gerrit服务器,可以发送电子邮件,他查看了我的问题,但无法找出服务器出了什么问题。我们两个都拥有相同的Linux版本、Gerrit版本、gerrit.configproject.config


你确定每个项目都继承了"All-Projects"项目上的"notify"配置吗?你的同事在"All-Projects"上使用相同的project.config文件吗?你尝试过为你正在推送更改的特定项目配置project.config文件吗? - Marcelo Ávila de Oliveira
嗨,Marcelo,是的,我所有的项目都从“所有项目”继承project.config。我甚至尝试将通知部分添加到各个项目中,但也没有起作用。是的,我的同事有相同的“notify”数据,只是发送消息的电子邮件地址不同。让我在原始问题中更新此信息,以供其他读者参考。 - ManyuBishnoi
3个回答

2

好的,已经找到问题并解决了。我遇到了两个问题,现在分享给大家。

  1. 我在登录为非gerrit.config中smtpUser帐户提到的用户时安装sendmail实用程序。之后,我忘记将sendmail实用程序添加到/opt中,因此gerrit.config中的smtpUser帐户无法访问sendmail实用程序。一旦我共享了sendmail实用程序给所有用户帐户,gerrit就开始发送电子邮件。

    总之,请确保在smtpUser下提到的用户帐户已经可以使用sendmail。感谢大家的时间。

  2. gerrit不会只向在gerrit.config中也是smtpUser的用户发送电子邮件。我通过向自己发送电子邮件进行测试,因此它无法正常工作。我不得不更改项目配置以添加除我的电子邮件帐户外的其他电子邮件地址。
    我不知道这是gerrit的错误还是功能。如果是一个功能,那么不确定其用例是什么!!

希望这些信息能够帮助其他人。


1

最近我在Gerrit升级后(从2.15 -> 3.2)遇到了这个问题。

我检查了/var/log/maillog中的postfix日志,清楚地显示在机器在Gerrit更新后重新启动后,没有更多的邮件到达这里。

进一步查看<gerrit-path>/logs/error_log(我不得不查看rollated文件),发现我们的邮件模板似乎存在问题,并给出了有问题的文件路径。

我们之前使用过https://gist.github.com/orgads/d8a61a1c10efeb7a4fafbcb6374167c3自定义邮件模板,其格式似乎不再有效。我用Gerrit提供的.soy.example文件替换了它,问题得到了解决。


0

对于我来说,由于我想通过将邮件发送到我的自己的电子邮件来测试邮件功能,因此我不得不进入设置(顺便提一下,这是 Gerrit 2.15.17),然后选择首选项,在电子邮件通知下拉菜单中选择“每个评论”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接