Назад | Перейти на главную страницу

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

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

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

а где журнал?

Где журналы?

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

  • / var / log / maillog
  • /var/log/mail.log
  • / var / adm / maillog
  • /var/adm/syslog/mail.log

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

mail.*         -/var/log/maillog

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

Если ваша система использует syslog-ng (вместо более "традиционных" системный журнал), то вам нужно будет найти свой 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

проверьте / var / log / maillog или / var / log / messages, если вы используете * nix

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

[root@web01 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ms-v-worlds 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:imaps 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:imap 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtp 
           tcp  --  anywhere             anywhere            tcp dpt:ssh state NEW recent: SET name: SSH side: source 
DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh state NEW recent: UPDATE seconds: 60 hit_count: 8 TTL-Match name: SSH side: source 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain RH-Firewall-1-INPUT (0 references)
target     prot opt source               destination         
[root@xxxx ~]# 

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

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

Для fedora et al. journalctl _COMM = sendmail покажет сообщения от sendmail.

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

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

/var/log/maillog

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

[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