Приложение Logback и Postfix

Я пытаюсь создать приложение, которое фильтрует любые журналы ниже уровня ERROR и отправляет электронные письма с этими журналами. Вот как выглядит мой файл logback.xml (только часть приложения):

<appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <!-- deny all events with a level below ERROR -->
        <level>ERROR</level>
    </filter>
    <smtpHost>${smtpHost}</smtpHost>
    <smtpPort>${smtpPort}</smtpPort>
    <STARTTLS>true</STARTTLS>
    <username>${username}</username>
    <password>${password}</password>
    <to>${mailingList}</to>

    <from>${username}</from>
    <subject>%logger{20} - %m</subject>
    <layout class="ch.qos.logback.classic.html.HTMLLayout"/>
    <cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTrackerImpl">
          <bufferSize>1</bufferSize>
    </cyclicBufferTracker>
</appender>

Где smtpHost - это localhost, а username и password принадлежат пользователю, которого я создал на сервере, на котором запущено приложение. Похоже, это не работает - письмо не было отправлено.

Но когда я использую другой сервер, то есть smtpHost = smtp.gmail.com, я получаю электронные письма, как и ожидалось.

Думаю, это означает, что что-то не так с тем, как я настроил postfix на сервере. Я был бы рад разместить здесь любую информацию из файла main.cf (я просто не хочу публиковать все это).


person Noam    schedule 19.06.2012    source источник
comment
Я сам не использую логбэк, но предполагаю, что его можно настроить на выдачу внутренней отладочной информации. Я бы попытался включить это, чтобы увидеть, сможете ли вы получить фактическую ошибку, которую видит приложение SMTP.   -  person Alex    schedule 19.06.2012


Ответы (1)


Это долгий путь, но вот идея. Posfix часто настроен на отклонение писем от отправителей, не выдающих действительное имя helo_hostname. Есть ли в postfix main.ch директива, подобная следующей?

smtpd_helo_restrictions =
        reject_non_fqdn_helo_hostname,
        reject_invalid_helo_hostname

smtpd_sender_restrictions = 
        reject_non_fqdn_sender,
        reject_unknown_sender_domain

Если это так, вы можете установить для свойства localhost SMTPAppender разумное значение. . Кстати, ${username}, вероятно, не следует использовать для установки одновременно <from> и <username> для постфикса.

BYW, почти всегда полезно установить для атрибута debug элемента <configuration> значение true, чтобы видеть внутренние сообщения журнала на консоли. Как в:

<configuration debug="true">...</configuration>
person Ceki    schedule 19.06.2012