Frage Wo kann ich das Protokoll von sendmail überprüfen?


Ich kann keine E-Mails versenden,

müssen in die Protokolle schauen,

aber wo ist das log?


90
2017-08-27 15:46


Ursprung


Lassen Sie uns wissen, welches Betriebssystem Sie verwenden? Wie andere unten bemerkt haben, ist es auf den meisten Systemen / var / log / maillog. Unter Solaris ist es / var / adm / maillog. Unter Debian / Ubuntu ist es /var/log/mail.log (notiere den Punkt). - Gerald Combs
tail -f / var / log / maillog - Thomas Denton


Antworten:


Wo sind die Protokolle?

Der Standardspeicherort hängt von Ihrem Linux / Unix-System ab, aber die häufigsten Orte sind

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

Wenn es nicht da ist, schau nach oben /etc/syslog.conf. Du solltest so etwas sehen

mail.*         -/var/log/maillog

Sendmail schreibt Protokolle in die mail Einrichtung von Syslog. Daher hängt davon ab, auf welche Datei geschrieben wird Syslog wurde konfiguriert.

Wenn Sie das System verwenden Syslog-ng (statt der eher "traditionellen" Syslog), dann musst du nachsehen syslog-ng.conf Datei. Du solltest so etwas haben:

# 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"); };

Sie können keine E-Mails senden?

Einer der häufigsten Gründe, die ich für eine gesehen habe frisch installiert sendmail kann keine E-Mails senden, wenn DAEMON_OPTIONS so eingestellt ist, dass nur auf 127.0.0.1 gehört wird

Siehe /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

Wenn das der Fall ist, entfernen Sie den "Addr = 127.0.0.1" Teil, bauen Sie Ihre Conf-Datei neu auf und Sie können loslegen!

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

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

Wenn Sie bis jetzt manuell Änderungen an /etc/sendmail.cf vorgenommen haben (anstelle der * .m4-Datei), können Sie ähnliche Änderungen in /etc/sendmail.cf vornehmen. Die beanstandete Zeile sieht folgendermaßen aus:

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

Ändere es zu:

O DaemonPortOptions=Port=smtp, Name=MTA

60
2017-08-27 15:57



tail -f / var / log / maillog - Thomas Denton
Ich denke, der Schlüssel hier ist: "DaemonPortOptions = Port = smtp, Addr = 127.0.0.1, Name = MTA" in /etc/mail/sendmail.mc Sehr guter Tipp. Habe meinen Tag gerettet, danke - serfer2
Aber warum 127.0.0.1 entfernen? Es scheint nicht so sicher zu sein, dass der Daemon auf die öffentliche Schnittstelle hört. (Ich würde vorschlagen, den gesamten Teil "Unable to sending email" zu entfernen, da dieser für OP nicht relevant ist.) - Alois Mahdal


check / var / log / maillog oder / var / log / messages wenn du auf * nix bist

Wenn nichts passiert, sollten Sie Ihre Firewall wie folgt überprüfen (tun Sie dies als root):

[root @ web01 ~] # iptables -L
Kette EINGANG (Politik AKZEPTIEREN)
Zielprot opt ​​Quellenziel
AKZEPTIEREN tcp - überall tcp dpt: ms-v-worlds
AKZEPTIEREN tcp - überall irgendwo tcp dpt: imaps
AKZEPTIEREN tcp - überall tcp dpt: imap
AKZEPTIEREN tcp - überall irgendwo tcp dpt: pop3
ACCEPT tcp - überall an jedem Ort tcp dpt: smtp
           tcp - irgendwo überall tcp dpt: ssh state NEU recent: SET name: SSH side: source
DROP tcp - irgendwo anders tcp dpt: ssh state NEU recent: UPDATE seconds: 60 hit_count: 8 TTL-Matchname: SSH side: source

Chain FORWARD (Politik AKZEPTIEREN)
Zielprot opt ​​Quellenziel

Chain OUTPUT (Politik AKZEPTIEREN)
Zielprot opt ​​Quellenziel

Kette RH-Firewall-1-INPUT (0 Referenzen)
Zielprot opt ​​Quellenziel
[root @ xxxx ~] #

21
2017-08-27 15:52



Oder schauen Sie unter * nix in /etc/syslog.conf nach, wo sonst diese Log-Nachrichten gesendet werden. - Liudvikas Bukys


Versuchen Sie, /var/log/mail.info oder /var/log/mail.err anzuschauen


3
2017-08-28 08:51





Überprüfen Sie auch / var / spool / mqueue für die aktuelle zwischengespeicherte Mail


1
2017-08-27 16:24





/var/log/maillog

0
2017-08-27 15:53





Für Fedora et al. journalctl _COMM = sendmail zeigt Nachrichten von sendmail an.

Ich wurde über eine Suche auf diese Antwort hingewiesen. / var / log / mail enthält nur eine 'Statistik' Datei auf Fedora. Und alle anderen erwähnten Verzeichnisse sind nicht existent.

journalctl ist nicht intuitiv genug, wenn Sie nicht wissen, welcher Parameter verwendet werden soll, ymmv. also habe ich diese Lösung gepostet.


0
2017-07-01 11:49





Sie können Ihre eigene Protokolldatei erstellen

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

und dann

[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