¿Dónde verificar el registro de sendmail?


103

No puedo enviar correos electrónicos,

Necesito mirar en los registros,

pero donde esta el log?


44
¿Le gustaría saber qué sistema operativo está utilizando? Como otros han señalado a continuación, en la mayoría de los sistemas es / var / log / maillog. En Solaris es / var / adm / maillog. En Debian / Ubuntu es /var/log/mail.log (tenga en cuenta el punto).
Gerald Combs

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

Respuestas:


72

¿Dónde están los registros?

La ubicación predeterminada depende de su sistema Linux / Unix, pero los lugares más comunes son

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

Si no está allí, mira hacia arriba /etc/syslog.conf. Debería ver algo como esto

mail.*         -/var/log/maillog

sendmail escribe registros en la mailinstalación de syslog. Por lo tanto, en qué archivo se escribe depende de cómo se configuró syslog .

Si su sistema usa syslog-ng (en lugar del syslog más "tradicional" ), entonces deberá buscar su syslog-ng.confarchivo. Deberías algo como esto:

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

¿No puede enviar correos electrónicos?

Una de las razones más comunes por las que he visto que un sendmail recién instalado no puede enviar correos electrónicos es que DAEMON_OPTIONS está configurado para escuchar solo en 127.0.0.1

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

Si ese es tu caso, elimina la parte "Addr = 127.0.0.1", reconstruye tu archivo conf y listo.

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

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

Si ha realizado cambios en /etc/sendmail.cf manualmente hasta ahora (en lugar del archivo * .m4), puede hacer cambios similares en /etc/sendmail.cf. La línea ofensiva se verá así:

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

Cámbielo a:

O DaemonPortOptions=Port=smtp, Name=MTA

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

1
Creo que la clave aquí es: "DaemonPortOptions = Port = smtp, Addr = 127.0.0.1, Name = MTA" en /etc/mail/sendmail.mc Muy buen consejo. Me salvó el día, gracias
serfer2

1
Pero, ¿por qué eliminar 127.0.0.1? Tener un demonio para escuchar en la interfaz pública no parece ser la forma más segura de hacerlo. (Sugeriría eliminar toda la parte "No se pueden enviar correos electrónicos" ya que no es relevante para OP.)
Alois Mahdal

23

marque / var / log / maillog o / var / log / messages si está en * nix

Además, si no sale nada, puede verificar su firewall de la siguiente manera (asegúrese de hacerlo como root):

[root @ web01 ~] # iptables -L
ENTRADA de cadena (política ACEPTAR)
destino de destino de origen de opt prot         
ACEPTAR tcp - en cualquier lugar en cualquier lugar tcp dpt: ms-v-worlds 
ACEPTAR tcp - en cualquier lugar en cualquier lugar tcp dpt: imaps 
ACEPTAR tcp - en cualquier lugar en cualquier lugar tcp dpt: imap 
ACEPTAR tcp - en cualquier lugar en cualquier lugar tcp dpt: pop3 
ACEPTAR tcp - en cualquier lugar en cualquier lugar tcp dpt: smtp 
           tcp - en cualquier lugar en cualquier lugar tcp dpt: estado ssh NUEVO reciente: nombre SET: lado SSH: fuente 
DROP tcp: en cualquier lugar en cualquier lugar tcp dpt: estado ssh NUEVO reciente: ACTUALIZACIÓN segundos: 60 hit_count: 8 TTL-Match name: SSH side: source 

Cadena HACIA ADELANTE (política ACEPTAR)
destino de destino de origen de opt prot         

Salida de cadena (política aceptada)
destino de destino de origen de opt prot         

Cadena RH-Firewall-1-INPUT (0 referencias)
destino de destino de origen de opt prot         
[root @ xxxx ~] # 

1
O, en * nix, busque en /etc/syslog.conf para ver a dónde más podrían enviarse esos mensajes de registro.
Liudvikas Bukys

no veo entrada de smtp en iptables
Umair

5

Intente mirar /var/log/mail.info o /var/log/mail.err


2

también verifique / var / spool / mqueue para el correo saliente actual en caché


2

Para fedora et al. journalctl _COMM = sendmail mostrará mensajes de sendmail.

Me dirigieron a esta respuesta a través de una búsqueda. / var / log / mail solo contiene un archivo de 'estadísticas' en Fedora. Y todos los demás directorios mencionados son inexistentes.

journalctl no es lo suficientemente intuitivo si no sabe qué parámetro usar, ymmv. Así que publiqué esta solución.



-1

Puedes crear tu propio archivo de registro

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

y entonces

[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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.