Dove controllare il registro di sendmail?


103

Non riesco a inviare e-mail,

bisogno di guardare nei registri,

ma dov'è il registro?


4
Vuoi farci sapere quale sistema operativo stai utilizzando? Come altri hanno notato di seguito, sulla maggior parte dei sistemi è / var / log / maillog. Su Solaris è / var / adm / maillog. Su Debian / Ubuntu è /var/log/mail.log (notare il punto).
Gerald Combs,

1
tail -f / var / log / maillog
Thomas Denton,

Risposte:


72

Dove sono i registri?

La posizione predefinita dipende dal tuo sistema linux / unix, ma i posti più comuni sono

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

Se non è lì, guarda in alto /etc/syslog.conf. Dovresti vedere qualcosa del genere

mail.*         -/var/log/maillog

sendmail scrive i log nella mailstruttura di syslog. Pertanto, quale file viene scritto dipende da come è stato configurato syslog .

Se il tuo sistema utilizza syslog-ng (invece del syslog più "tradizionale" ), dovrai cercare il tuo syslog-ng.conffile. Dovresti avere qualcosa del genere:

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

Impossibile inviare e-mail?

Uno dei motivi più comuni che ho visto per un sendmail appena installato che non è in grado di inviare e-mail è il DAEMON_OPTIONS impostato per l'ascolto solo su 127.0.0.1

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

In tal caso, rimuovere la parte "Addr = 127.0.0.1", ricostruire il file conf e il gioco è fatto!

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

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

Se finora hai apportato modifiche a /etc/sendmail.cf manualmente (invece del file * .m4) puoi apportare modifiche simili in /etc/sendmail.cf. La linea offensiva sarà simile a questa:

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

Modificalo in:

O DaemonPortOptions=Port=smtp, Name=MTA

1
tail -f / var / log / maillog
Thomas Denton,

1
Penso che la chiave qui sia: "DaemonPortOptions = Port = smtp, Addr = 127.0.0.1, Name = MTA" in /etc/mail/sendmail.mc Ottimo suggerimento. Mi ha salvato la giornata, grazie
serfer2

1
Ma perché rimuovere 127.0.0.1? Avere un demone da ascoltare su un'interfaccia pubblica non sembra il modo più sicuro di farlo. (Suggerirei di rimuovere l'intera parte "Impossibile inviare e-mail" in quanto non pertinente
all'OP

23

controlla / var / log / maillog o / var / log / messaggi se sei su * nix

Inoltre, se non succede nulla, potresti voler controllare il tuo firewall come segue (assicurati di farlo come root):

[root @ web01 ~] # iptables -L
Catena INPUT (politica ACCETTA)
destinazione di destinazione opt opt ​​prot         
ACCETTA tcp - ovunque ovunque tcp dpt: ms-v-worlds 
ACCETTA tcp - ovunque ovunque tcp dpt: imaps 
ACCETTA tcp - ovunque ovunque tcp dpt: imap 
ACCETTA tcp - ovunque ovunque tcp dpt: pop3 
ACCETTA tcp - ovunque ovunque tcp dpt: smtp 
           tcp - ovunque ovunque tcp dpt: stato ssh NOVITÀ recente: SET nome: lato SSH: sorgente 
DROP tcp - ovunque ovunque tcp dpt: stato ssh NOVITÀ recente: AGGIORNAMENTO secondi: 60 hit_count: 8 TTL-Nome partita: lato SSH: fonte 

Chain FORWARD (politica ACCETTATA)
destinazione di destinazione opt opt ​​prot         

OUTPUT a catena (politica ACCETTA)
destinazione di destinazione opt opt ​​prot         

Catena RH-Firewall-1-INPUT (0 riferimenti)
destinazione di destinazione opt opt ​​prot         
[root @ xxxx ~] # 

1
Oppure, su * nix, guarda in /etc/syslog.conf per vedere dove altro potrebbero essere inviati quei messaggi di log.
Liudvikas Bukys,

non vedo alcuna voce di smtp in iptables
Umair

5

Prova a guardare /var/log/mail.info o /var/log/mail.err


2

controlla anche / var / spool / mqueue per la posta in uscita corrente nella cache


2

Per fedora et al. journalctl _COMM = sendmail mostrerà i messaggi da sendmail.

Sono stato indirizzato a questa risposta tramite una ricerca. / var / log / mail contiene solo un file 'statistiche' su Fedora. E tutte le altre directory menzionate sono inesistenti.

journalctl non è abbastanza intuitivo se non sai quale parametro usare, ymmv. quindi ho pubblicato questa soluzione.



-1

È possibile creare il proprio file di registro

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

e poi

[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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.