Onde verificar o log do sendmail?

103

Não consigo enviar e-mails,

precisa olhar para os logs,

mas onde está o log?


fonte
4
Gostaria de nos informar qual sistema operacional você está usando? Como outros observaram abaixo, na maioria dos sistemas é / var / log / maillog. No Solaris, é / var / adm / maillog. No Debian / Ubuntu é /var/log/mail.log (observe o ponto).
Gerald Combs
1
tail -f / var / log / maillog
Thomas Denton

Respostas:

72

Onde estão os logs?

O local padrão depende do seu sistema linux / unix, mas os locais mais comuns são

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

Se não estiver lá, olhe para cima /etc/syslog.conf. Você deve ver algo assim

mail.*         -/var/log/maillog

O sendmail grava logs nas mailinstalações do syslog. Portanto, em qual arquivo ele é gravado depende de como o syslog foi configurado.

Se o seu sistema usa o syslog-ng (em vez do syslog mais "tradicional" ), será necessário procurar seu syslog-ng.confarquivo. Você deve algo assim:

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

Não foi possível enviar e-mails?

Um dos motivos mais comuns que eu vi para um sendmail instalado recentemente não poder enviar e-mails é o DAEMON_OPTIONS sendo configurado para escutar apenas no 127.0.0.1

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

Se for esse o seu caso, remova a parte "Addr = 127.0.0.1", reconstrua seu arquivo conf e você estará pronto!

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

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

Se você fez alterações manualmente no /etc/sendmail.cf até o momento (em vez do arquivo * .m4), pode fazer alterações semelhantes no /etc/sendmail.cf. A linha incorreta terá a seguinte aparência:

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

Altere para:

O DaemonPortOptions=Port=smtp, Name=MTA
Shawn Chin
fonte
1
tail -f / var / log / maillog
Thomas Denton
1
Acho que a chave aqui é: "DaemonPortOptions = Port = smtp, Addr = 127.0.0.1, Name = MTA" em /etc/mail/sendmail.mc Dica muito boa. Salvou meu dia, graças
serfer2
1
Mas por que remover 127.0.0.1? Ter o daemon para escutar na interface pública não parece ser a maneira mais segura de fazer. (Eu sugiro para remover toda a "Não é possível enviar e-mails" parte que não seja relevante para o OP.)
Alois Mahdal
23

verifique / var / log / maillog ou / var / log / messages se você estiver no * nix

Além disso, se nada sair, você pode verificar o seu firewall da seguinte maneira (certifique-se de fazer isso como root):

[root @ web01 ~] # iptables -L
ENTRADA em cadeia (política ACEITAR)
destino de origem da proteção de destino         
ACEITAR tcp - em qualquer lugar e em qualquer lugar tcp dpt: ms-v-worlds 
ACEITAR tcp - em qualquer lugar e em qualquer lugar tcp dpt: imaps 
ACEITAR tcp - em qualquer lugar e em qualquer lugar tcp dpt: imap 
ACEITAR tcp - em qualquer lugar e em qualquer lugar tcp dpt: pop3 
ACEITAR tcp - em qualquer lugar e em qualquer lugar tcp dpt: smtp 
           tcp - em qualquer lugar e em qualquer lugar tcp dpt: estado ssh NOVO recente: SET nome: lado SSH: fonte 
DROP tcp - em qualquer lugar e em qualquer lugar tcp dpt: ssh state NOVO recente: UPDATE segundos: 60 hit_count: 8 TTL-Match name: SSH side: source 

Cadeia FORWARD (política ACEITAR)
destino de origem da proteção de destino         

SAÍDA da cadeia (política ACEITAR)
destino de origem da proteção de destino         

Cadeia RH-Firewall-1-INPUT (0 referências)
destino de origem da proteção de destino         
[raiz @ xxxx ~] # 
bsisco
fonte
1
Ou, no * nix, consulte /etc/syslog.conf para ver para onde mais essas mensagens de log podem estar sendo enviadas.
Liudvikas Bukys
não vejo nenhuma entrada de smtp no iptables
Umair
5

Tente consultar /var/log/mail.info ou /var/log/mail.err

Rory
fonte
2

verifique também / var / spool / mqueue os emails de saída em cache atuais

Jimsmithkka
fonte
2

Para fedora et al. journalctl _COMM = sendmail mostrará mensagens do sendmail.

Fui direcionado para esta resposta através de uma pesquisa. / var / log / mail contém apenas um arquivo 'statistics' no Fedora. E todos os outros diretórios mencionados são inexistentes.

O journalctl não é intuitivo o suficiente se você não souber qual parâmetro usar, ymmv. então eu publiquei esta solução.

hoje
fonte
1
/var/log/maillog
Prody
fonte
-1

Você pode criar seu próprio arquivo de log

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

e depois

[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
Jonny
fonte