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


103

Ich kann keine E-Mails verschicken

müssen in die Protokolle schauen,

aber wo ist das log?


4
Möchten Sie uns mitteilen, welches Betriebssystem Sie verwenden? Wie andere weiter unten angemerkt 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 (beachten Sie den Punkt).
Gerald Combs

1
Schwanz -f / var / log / maillog
Thomas Denton

Antworten:


72

Wo sind die Protokolle?

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

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

Wenn es nicht da ist, schau nach /etc/syslog.conf. Sie sollten so etwas sehen

mail.*         -/var/log/maillog

sendmail schreibt Protokolle in die mailEinrichtung von syslog. Daher hängt es davon ab, wie Syslog konfiguriert wurde , in welche Datei geschrieben wird .

Wenn Ihr System Syslog-ng verwendet (anstelle des "traditionelleren" Syslog ), müssen Sie Ihre syslog-ng.confDatei nachschlagen . Du solltest so etwas machen:

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

Können Sie keine E-Mails versenden?

Einer der häufigsten Gründe, warum ich gesehen habe, dass ein frisch installiertes sendmail keine E-Mails versenden kann, ist, dass DAEMON_OPTIONS so eingestellt ist, dass es nur 127.0.0.1 überwacht

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 dies der Fall ist, entfernen Sie den Teil "Addr = 127.0.0.1", erstellen Sie Ihre Conf-Datei neu und los geht's!

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

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

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

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

Ändern Sie es in:

O DaemonPortOptions=Port=smtp, Name=MTA

1
Schwanz -f / var / log / maillog
Thomas Denton

1
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. Ich habe meinen Tag gerettet, danke
serfer2

1
Aber warum 127.0.0.1 entfernen? Daemon zu haben, um auf der öffentlichen Oberfläche zu lauschen, scheint nicht die sicherste Möglichkeit zu sein. (Ich würde vorschlagen, den gesamten Teil "Versenden von E-Mails nicht möglich" zu entfernen, da er für OP nicht relevant ist.)
Alois Mahdal

23

Überprüfe / var / log / maillog oder / var / log / messages, wenn du auf * nix bist

Wenn nichts ausfällt, können Sie Ihre Firewall folgendermaßen überprüfen (tun Sie dies unbedingt als root):

[root @ web01 ~] # iptables -L
Chain INPUT (Policy ACCEPT)
Zielprotokoll Quellenziel         
ACCEPT tcp - überall überall tcp dpt: ms-v-worlds 
ACCEPT tcp - überall überall tcp dpt: imaps 
ACCEPT tcp - überall überall tcp dpt: imap 
ACCEPT tcp - überall überall tcp dpt: pop3 
ACCEPT tcp - überall überall tcp dpt: smtp 
           tcp - überall überall tcp dpt: ssh state NEU aktuell: SET name: SSH side: source 
DROP tcp - überall überall tcp dpt: ssh state NEU aktuell: UPDATE Sekunden: 60 hit_count: 8 TTL-Match Name: SSH Seite: Quelle 

Chain FORWARD (Policy ACCEPT)
Zielprotokoll Quellenziel         

Chain OUTPUT (Policy ACCEPT)
Zielprotokoll Quellenziel         

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

1
Oder schauen Sie unter * nix in /etc/syslog.conf nach, wohin diese Protokollnachrichten sonst gesendet werden könnten.
Liudvikas Bukys

Ich sehe keinen Eintrag von SMTP in Iptables
Umair

5

Versuchen Sie es mit /var/log/mail.info oder /var/log/mail.err


2

Überprüfen Sie auch / var / spool / mqueue auf zwischengespeicherte ausgehende E-Mails


2

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

Ich wurde über eine Suche auf diese Antwort verwiesen. / var / log / mail enthält nur eine 'Statistik'-Datei für Fedora. Und alle anderen genannten Verzeichnisse sind nicht vorhanden.

journalctl ist nicht intuitiv genug, wenn Sie nicht wissen, welchen Parameter Sie verwenden sollen, ymmv. Also habe ich diese Lösung gepostet.



-1

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.