Где проверить журнал sendmail?
Я не могу отправлять электронные письма,
надо заглядывать в логи,
а где журнал?
7 ответов
Где журналы?
Расположение по умолчанию зависит от вашей системы Linux/ Unix, но наиболее распространенные места
- / Вар / Журнал / MAILLOG
- /var/log/mail.log
- / Var / ADM / MAILLOG
- /var/adm/syslog/mail.log
Если его там нет, посмотрите вверх /etc/syslog.conf
, Вы должны увидеть что-то вроде этого
mail.* -/var/log/maillog
sendmail записывает логи в mail
средство системного журнала. Следовательно, какой файл будет записан, зависит от того, как был настроен системный журнал.
Если ваша система использует syslog-ng (вместо более "традиционного" 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
Проверьте /var/log/maillog или /var/log/messages, если вы используете * nix
Кроме того, если ничего не выходит, вы можете проверить свой брандмауэр следующим образом (не забудьте сделать это как root):
[root @ web01 ~] # iptables -L Цепной ВХОД (политика ПРИНЯТЬ) целевой целевой источник назначения ПРИНЯТЬ tcp - где угодно и где угодно tcp dpt:ms-v-worlds ПРИНЯТЬ tcp - где угодно где угодно tcp dpt: imaps ПРИНЯТЬ tcp - где угодно где угодно tcp dpt: imap ПРИНЯТЬ tcp - где угодно и где угодно tcp dpt:pop3 ПРИНЯТЬ tcp - где угодно и где угодно tcp dpt: smtp tcp - где угодно и где угодно tcp dpt: состояние ssh НОВОЕ недавнее: имя SET: сторона SSH: источник DROP tcp - где угодно где угодно tcp dpt: состояние ssh НОВЫЕ последние: ОБНОВЛЕНИЕ секунд: 60 Hit_count: 8 Имя TTL-совпадения: сторона SSH: исходная цепь FORWARD (policy ACCEPT) целевая prot opt целевая точка назначения Chain OUTPUT (policy ACCEPT) целевая prot opt источник назначения Chain RH-Firewall-1-INPUT (0 ссылок) целевой источник назначения назначения [root@xxxx ~]#
Попробуйте посмотреть /var/log/mail.info или /var/log/mail.err
Также проверьте /var/spool/mqueue для текущей кэшированной исходящей почты
Для Fedora и соавт. journalctl _COMM=sendmail будет показывать сообщения от sendmail.
Я был направлен на этот ответ через поиск. /var/log/mail содержит только файл статистики в Fedora. И все остальные упомянутые каталоги не существуют.
journalctl недостаточно интуитивен, если вы не знаете, какой параметр использовать, ymmv. поэтому я разместил это решение.
Вы можете создать свой собственный файл журнала
[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