Я не можу надсилати електронні листи,
потрібно заглянути в колоди,
але де журнал?
Я не можу надсилати електронні листи,
потрібно заглянути в колоди,
але де журнал?
Відповіді:
Місце за замовчуванням залежить від вашої системи linux / unix, але найпоширеніші місця є
Якщо його там немає, дивіться вгору /etc/syslog.conf
. Ви повинні побачити щось подібне
mail.* -/var/log/maillog
sendmail записує журнали до mail
об'єкту syslog. Отже, для якого файлу він записується, залежить від того, як налаштовано syslog .
Якщо система використовує 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", відновіть конф-файл і ви готові йти!
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
check / var / log / maillog або / var / log / messages, якщо ви перебуваєте на * nix
Крім того, якщо нічого не виходить, можливо, ви захочете перевірити брандмауер наступним чином (не забудьте зробити це як root):
[root @ web01 ~] # iptables -L Ланцюговий Вхід (політика ACCEPT) цільовий прот вибір джерела призначення 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 state НОВЕ нещодавно: ім'я SET: SSH сторона: джерело DROP tcp - де завгодно, де tcp dpt: ssh state НОВІ останні: ОНОВЛЕННЯ секунд: 60 hit_count: 8 TTL Назва матчу: SSH сторона: джерело Ланцюг Вперед (політика ACCEPT) цільовий прот вибір джерела призначення Ланцюговий вихід (політика ACCEPT) цільовий прот вибір джерела призначення Ланцюг RH-Firewall-1-INPUT (0 посилань) цільовий прот вибір джерела призначення [root @ xxxx ~] #
також перевірте / 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