Вопрос: Где проверить журнал sendmail?


Я не могу отправлять электронные письма,

нужно заглянуть в журналы,

но где журнал?


87
2017-08-27 15:46


Источник


Позаботьтесь, чтобы сообщить нам, какую ОС вы используете? Как отмечалось ниже, в большинстве систем это / var / log / maillog. В Solaris это / var / adm / maillog. В Debian / Ubuntu это /var/log/mail.log (обратите внимание на точку). - Gerald Combs
tail -f / var / log / maillog - Thomas Denton


Ответы:


Где журналы?

Местоположение по умолчанию зависит от вашей системы linux / unix, но наиболее распространенными местами являются

  • / Вар / Журнал / MAILLOG
  • /var/log/mail.log
  • / Var / ADM / MAILLOG
  • /var/adm/syslog/mail.log

Если его там нет, посмотрите /etc/syslog.conf, Вы должны увидеть что-то вроде этого

mail.*         -/var/log/maillog

Отправить письмо записывает журналы в mail средство системного журнала. Поэтому файл, который он записывает, зависит от того, как системный журнал был настроен.

Если вы используете систему Syslog-нг (вместо более "традиционных" системный журнал), тогда вам придется искать syslog-ng.conf файл. Вы должны сделать что-то вроде этого:

# This files are the log come from the mail subsystem.
#
destination mail     { file("/var/log/mail.log"); };
destination maillog  { file("/var/log/maillog"); };
destination mailinfo { file("/var/log/mail.info"); };
destination mailwarn { file("/var/log/mail.warn"); };
destination mailerr  { file("/var/log/mail.err"); };

Не удалось отправить электронные письма?

Одна из самых распространенных причин, по которым я видел только что установлен sendmail не может отправлять электронные письма, а DAEMON_OPTIONS настроен на прослушивание только на 127.0.0.1

См. /Etc/mail/sendmail.mc

dnl #
dnl # The following causes sendmail to only listen on the IPv4 loopback address
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
dnl # address restriction to accept email from the internet or intranet.
dnl #
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

Если это ваш случай, удалите часть «Addr = 127.0.0.1», перестройте свой файл conf, и вам хорошо идти!

DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl

[root@server]$ m4 sendmail.mc > /etc/sendmail.cf
[root@server]$/etc/init.d/sendmail restart

Если вы до сих пор вносили изменения в /etc/sendmail.cf вручную (вместо файла * .m4), вы можете сделать аналогичные изменения в файле /etc/sendmail.cf. Оскорбительная строка будет выглядеть так:

O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA

Измените его на:

O DaemonPortOptions=Port=smtp, Name=MTA

56
2017-08-27 15:57



tail -f / var / log / maillog - Thomas Denton
Я думаю, ключ здесь: «DaemonPortOptions = Port = smtp, Addr = 127.0.0.1, Name = MTA» в /etc/mail/sendmail.mc Очень хороший совет. Спас мой день, спасибо - serfer2
Но зачем удалять 127.0.0.1? Демон для прослушивания в публичном интерфейсе не кажется самым безопасным способом. (Я бы предложил удалить всю часть «Невозможно отправить электронную почту», поскольку она не относится к OP.) - Alois Mahdal


check / var / log / maillog или / var / log / messages, если вы на * nix

Кроме того, если ничего не происходит, вы можете проверить свой брандмауэр следующим образом (обязательно сделайте это как root):

[root @ web01 ~] # iptables -L
Цепочка INPUT (политика ACCEPT)
целевой целевой источник opt opt
ACCEPT tcp - где угодно, tcp dpt: ms-v-worlds
ACCEPT tcp - где угодно, tcp dpt: imaps
ACCEPT tcp - где угодно, tcp dpt: imap
ACCEPT tcp - везде где угодно tcp dpt: pop3
ACCEPT tcp - где угодно, tcp dpt: smtp
           tcp - где угодно tcp dpt: состояние ssh NEW недавнее: имя SET: сторона SSH: источник
DROP tcp - где угодно, tcp dpt: состояние ssh NEW недавнее: UPDATE секунд: 60 hit_count: 8 TTL-Match name: SSH side: source

Цепь FORWARD (политика ACCEPT)
целевой целевой источник opt opt

Цепочка OUTPUT (политика ACCEPT)
целевой целевой источник opt opt

Цепь RH-Firewall-1-INPUT (0 ссылок)
целевой целевой источник opt opt
[root @ xxxx ~] #

21
2017-08-27 15:52



Или, на * nix, зайдите в /etc/syslog.conf, чтобы узнать, куда будут отправляться те сообщения журнала. - Liudvikas Bukys


Попробуйте просмотреть /var/log/mail.info или /var/log/mail.err


3
2017-08-28 08:51





также проверить / var / spool / mqueue для текущей кэшированной исходящей почты


1
2017-08-27 16:24





/var/log/maillog

0
2017-08-27 15:53





Для fedora и др. journalctl _COMM = sendmail будет показывать сообщения из sendmail.

Я был направлен на этот ответ через поиск. / var / log / mail содержит только файл статистики в Fedora. И все другие упомянутые каталоги не существуют.

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


0
2017-07-01 11:49





Вы можете создать свой собственный файл журнала

[admin@local ~]# killall sendmail
[admin@local ~]# touch /var/log/sendmail.log
[admin@local ~]# sendmail -bd -q15m >> /var/log/sendmail.log

а потом

[admin@local ~]# tail -f /var/log/sendmail.log

451 4.0.0 /fake/path/sendmail.cf: line 0: cannot open: No such file or directory

-1
2017-09-04 10:17