Ich kann keine E-Mails verschicken
müssen in die Protokolle schauen,
aber wo ist das log?
Ich kann keine E-Mails verschicken
müssen in die Protokolle schauen,
aber wo ist das log?
Antworten:
Der Standardspeicherort hängt von Ihrem Linux / Unix-System ab, die häufigsten sind jedoch
Wenn es nicht da ist, schau nach /etc/syslog.conf
. Sie sollten so etwas sehen
mail.* -/var/log/maillog
sendmail schreibt Protokolle in die mail
Einrichtung 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.conf
Datei 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"); };
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
Ü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 ~] #
Überprüfen Sie auch / var / spool / mqueue auf zwischengespeicherte ausgehende E-Mails
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.
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