2016-12-20 14 views
1

Я настроил сервер Gerrit и попытался отправить его по электронной почте (для всех событий). Но по какой-то причине Геррит не отправляет никаких писем. error_logs не показывает абсолютно никаких данных, это означает, что он даже не пытается отправлять электронные письма.Gerrit не отправляет письма

Вот соответствующая часть моей project.config для "All-проектов":

[notify "demo"] 
    email = [email protected] 
    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 = [email protected] 
[download] 
    scheme = ssh 
[httpd] 
    listenUrl = http://*:8443/ 
    maxThreads = 128 
[cache] 
     directory = cache 
[gitweb] 
    cgi = /usr/share/gitweb/gitweb.cgi 

Окружающая среда: Ubuntu 14.04 и Геррит 2.11.6 ,

Я попытался отправить электронную почту из командной строки на этом сервере, и это работает нормально.

Все мои отдельные проекты на gerrit наследуют права доступа от «Все проекты». Я даже попытался добавить раздел электронной почты в каждый отдельный проект, но это тоже не помогло.

Мой коллега, у которого есть собственный сервер Gerrit, который может отправлять электронные письма, изучил мою проблему и не мог понять, что не так с моим сервером. У нас обе версии Linux, версия Gerrit, gerrit.config и project.config.

+0

Вы уверены, что каждый проект наследует конфигурацию «уведомлять» в проекте «Все проекты»? Содержит ли тот же project.config «Все проекты» вашему коллеге? Вы пытались настроить project.config для конкретного проекта, который вы нажимаете на изменения? –

+0

Привет, Марсело, Да, все мои проекты наследуют project.config от «Все проекты». Я даже попытался добавить раздел уведомлений к отдельным проектам, и это тоже не сработало. Да, мой коллега имеет те же «уведомления», кроме адреса электронной почты, на который отправлено сообщение. Позвольте мне обновить эту информацию в моем исходном вопросе, а также для других читателей. – ManyuBishnoi

ответ

1

Хорошо, нашли проблемы и исправили их. У меня было две проблемы, обмен ссылками для пользователей.

  1. Я установил Sendmail утилиту, когда вошли в систему как пользователь, кроме smtpUser счета, указанного в gerrit.config. После этого я забыл добавить утилиту sendmail в/opt и, следовательно, учетная запись smtpUser из gerrit.config не смогла получить доступ к утилите sendmail. Как только я поделился утилитой sendmail со всеми учетными записями пользователей, gerrit начал отправлять электронные письма.

    Чтобы подвести итог, убедитесь, что учетная запись пользователя, указанная в smtpUser, имеет доступ к sendmail. Спасибо всем за ваше время.

  2. gerrit не будет отправлять электронную почту ТОЛЬКО пользователю, который также является smtpUser в файле gerrit.config. Я тестировал его, отправляя электронные письма только мне, и, следовательно, он не работал. Мне пришлось изменить конфигурацию проекта, чтобы добавить адрес электронной почты, отличный от моей собственной учетной записи электронной почты.
    Я не знаю, является ли это ошибкой gerrit или функцией gerrit. Если функция тогда не уверен, что является прецедентом для этого!

Я надеюсь, что эта информация поможет другим ребятам.