¿Qué es el mensaje "Tiene correo nuevo" en Linux / UNIX?

427

A veces, cuando inicio sesión en un cuadro y 'su' para rootear, recibo un pequeño y lindo mensaje que dice que tengo correo (gracias a Dios no es AOL).

  • ¿Dónde está este correo?
  • Que contiene
  • ¿Quién / qué lo envió?
  • Que tan importante es

¿Es este incluso "correo" real en el mismo sentido que el correo electrónico? ¿O es solo mi sistema diciéndome algo?

EDITAR: En relación con esta pregunta, ¿podría enviarme correo usando el programa sendmail de la siguiente manera email@localhost:?

n0pe
fuente
Tengo este mensaje que dice "Este texto es parte del formato interno de su carpeta de correo, ...", así que, por supuesto, cada vez que inicio sesión me informan que tengo correo.
GEdgar
1
@GEdgar: Esto generalmente significa que debe dejar de usar los buzones de mbox y migrar a Maildir :)
grawity
1
Cómo reenviar el correo: unix.stackexchange.com/questions/26666/…
Melebius
1
En caso de que alguien esté mirando, aquí hay una línea única de powerhshell para dividir eso en archivos individuales legibles por perspectiva:$i=0;(gc .\mail\root -raw) -split '[^, ]From '|%{$i++;sc mail$i.eml -value ("From " + $_)}
JDuarteDJ

Respuestas:

354

¿Dónde está este correo?

Es probable que esté en el archivo de spool: /var/mail/$USERo /var/spool/mail/$USERson las ubicaciones más comunes en Linux y BSD.

(Son posibles otras ubicaciones, verifique si $MAILestá configurado, pero de manera predeterminada, el sistema solo le informa sobre /var(/spool)/mail).

Por lo general, el archivo de cola está en un formato mbox muy simple , por lo que puede abrirlo en un editor de texto o localizador.

Para una forma un poco más conveniente, la mayoría de las distribuciones vienen con un programa llamado mail(o Mail, mailx). Puedes probar mutto alpine; incluso puede configurarlo para que se envíe a un buzón externo. (Consulte "¿es este correo real?" A continuación).

¿Qué contiene y quién / qué lo envió?

Muy a menudo, los mensajes contienen resultados de trabajos cron, o un informe de seguridad del sistema por logwatch , o basura similar. Léelo y averígualo.

Que tan importante es

Depende en gran medida del contenido de cada mensaje.

Usted debe al menos escanear los mensajes con el asunto - a menudo la gente ignora el correo durante meses sin darse cuenta de su trabajo diario cron fallan.

¿Es este incluso "correo" real en el mismo sentido que el correo electrónico? ¿O es solo mi sistema diciéndome algo?

Sí a ambos: es generado por su sistema que le dice algo, pero también es un correo electrónico real y puede manejarse como tal.

Puede (y debe) configurar su software de correo, el "MTA", también conocido /usr/sbin/sendmail, para reenviar los mensajes a su dirección de correo personal. Las instrucciones exactas varían según el MTA (si lo hay) que haya instalado, ya sea una computadora personal o un servidor, si tiene su propio dominio o utiliza un @ gmail.com , etc.

Tenga en cuenta que /usr/sbin/sendmailhoy en día es una API compartida y no necesariamente significa el MTA original de Sendmail. De hecho, no deberías usar Sendmail, sino algo más moderno como OpenSMTPD, Postfix o Exim4. Todos ellos proporcionan la misma /usr/sbin/sendmailherramienta, pero son más fáciles de configurar, más seguros e igual de potentes.

Gravedad
fuente
3
Buena respuesta. Si hubiera agregado enlaces con información sobre cómo configurar OpenSMTPD, Postfix o Exim4 para reenviar el correo a su dirección de correo electrónico normal, hubiera sido aún mejor.
imolit
1
Aquí hay una pregunta relacionada que muestra cómo configurar mutt : askubuntu.com/a/499335/75735
KalenGi
Gran respuesta. Pero, ¿cómo lo uso mailpara leer el correo electrónico? La página de manual no dice.
jpaugh
1
Vi mi correo con el comando cat / var / mail / $ USER y lo eliminé con el comando rm -rf / var / mail / $ USER.
Sinan Eldem
@grawity ¿debo eliminar los archivos /var/mail/cuando los leo o simplemente borrar el texto dentro de ellos? ¡gracias!
yaylitzis
206

La forma más fácil para mí era ejecutar lo siguiente en una terminal:

cat /var/spool/mail/root
Maclovin
fuente
55
La mejor respuesta práctica hasta ahora que realmente se suma al conocimiento. Ahora puedo leer el correo. Me pregunto por qué es la respuesta más inferior.
CDR
37
Me doy cuenta de que esta es una pregunta / respuesta bastante antigua, pero este XKCD es relevante para la discusión. (pista: texto emergente)
Blackhawk
11
O solo less $MAILsi quieres navegar.
Walf
77
O less +G $MAILcomenzar por el final.
Charlie Gorichanaz
44
@Blackhawk Y ahora aún más este XKCD .
postre
57

Para cualquiera que se pregunte cómo leer estos mensajes uno por uno, puede usar 'mail'

$ mail

Luego escriba un número de mensaje de la lista que desea leer.

Para ir al siguiente mensaje, puede escribir 'siguiente', otro comando útil es 'eliminar'.

Para ver más sobre cómo funciona el mailprograma, vea la salida de man mail.

Dominic Williams
fuente
3
//, Esto no funciona realmente, en CEntOS 6. En ese caso, uno debe usar $ mailx.
Nathan Basanese
66
En Ubuntu 16.04, primero necesito instalar mailutilsejecutandoapt install mailutils
Edwin Yip
En instancias de Amazon EC2, puede instalarlo usandosudo yum install mail
JonDoe297
1
Funciona para mí en macOS
juanmirocks
39

Solo para ofrecer algunas aclaraciones, ha sido una tradición durante mucho tiempo que las cajas UNIX ejecuten un demonio de correo "configurado localmente" que no enruta mensajes a través de Internet, sino que solo copia mensajes en otros directorios de spool de usuarios (como @John T mencionado). Es un correo electrónico compatible con SMTP real, simplemente no se enruta a través de Internet porque no es necesario.

Por lo tanto, si enciende un cliente de correo electrónico (como alpineo mutt), puede enviar correo a otros usuarios en el sistema dirigiéndose a user@hostname, o en muchos casos, simplemente especificando el usuario. También es probable que tenga una utilidad de línea de comandos llamada mailxque se puede utilizar para enviar un correo electrónico rápido utilizando su shell.

Ahora, si desea enviar mensajes a los usuarios en sistemas distintos al que está conectado, ahí es donde comienza la verdadera diversión. Tendrá que configurar su demonio de correo para reconocer y entregar el correo electrónico externo a un agente de transferencia, configurar el agente de transferencia y hacer un montón de cosas que aún no entiendo.

LawrenceC
fuente
24

¿Dónde está este correo?

Muy probablemente almacenado en su máquina, en la carpeta del buzón para su usuario raíz (donde ESO depende del tipo de servidor de correo que haya instalado). Probablemente pueda acceder a él bastante rápido a través de alpino .

Que contiene

Probablemente solo algunas cosas del tipo de informe del sistema. "Traté de iniciar sesión 10 veces con una contraseña incorrecta" ... "Desearía que alguien ejecutara actualizaciones sobre mí", "el controlador tal y tal falla constantemente", "El robot de la NSA ha aumentado el rendimiento en un 1%" .. etc.

¿Quién / qué lo envió?

Servicios en su servidor, muy probablemente.

Que tan importante es

Depende de lo importante que sea su servidor.

James T Snell
fuente
Creo que la sugerencia de John de que está almacenada en / var / spool / mail / root se basa en una (buena) suposición de que está ejecutando sendmail. Creo que otros servidores de correo usan diferentes ubicaciones para almacenar el correo.
James T Snell
¿Hay alguna forma de que los usuarios utilicen el subsistema de correo?
n0pe
White Phoenix: lo miraré cuando mi correo esté cuando vuelva a recibir el mensaje :) ¿Hay alguna forma de que lo active o es una pregunta demasiado localizada?
n0pe
Si desea explorar la ejecución de su propio servidor de correo (que las personas usan en un sentido de correo electrónico típico), ¿sería útil saber qué distribución está ejecutando? Sin esa información, todo lo que diré es que te sugiero que leas en sendmail (ya que probablemente ya estés ejecutando sendmail) ..
James T Snell el
La mayoría de ellos están ejecutando AIX, pero me gustaría explorar esto en mi estación de trabajo en casa con OpenSuSe
n0pe
14

Este correo normalmente se encuentra /var/spool/mail/rootcuando se configura el demonio de sendmail predeterminado (habitual). Contiene un mensaje de correo electrónico RAW que la mailutilidad puede leer . Se puede encontrar quién lo envió ejecutando la mailutilidad y buscando los mensajes o leyendo los encabezados RAW.

La importancia del mensaje generalmente depende del factor anterior, quién lo envió :)

Muchas utilidades del sistema utilizarán el subsistema de correo como un medio para informar y registrar. Las utilidades del observador de registros y otros servicios pueden enviar un correo electrónico al usuario raíz local como recordatorio sobre un evento específico, como poco espacio en disco o errores de hardware. El demonio de correo también lo alertará si no pudo enviar un correo electrónico saliente.

John T
fuente
¿Hay alguna manera de ver cómo está configurado mi subsistema de correo?
n0pe
@Max el sendmail.mcarchivo controla la configuración del demonio sendmail en la mayoría de las instalaciones predeterminadas. Por lo general, se encuentra debajo /etc/mail.
John T
@Max Recomiendo encarecidamente leer un tutorial como linuxhomenetworking.com/wiki/index.php/… para ayudarlo a configurar el demonio de correo como desee.
John T
En ubuntu 16.4., Tengo /etc/mail.rcque no está relacionado consendmail
Timo
12

less +G /var/spool/mail/root

muestra los últimos correos, al final si el archivo.

Mostrar directamente el archivo de correo es una buena idea, pero usarlo catpuede salir mal fácilmente. No desea que se desplace todos los correos, si hay muchos mensajes o mensajes muy largos en el archivo. Acabo de ver uno con 150 MB, dos millones de líneas.

Si no eres root:

sudo less +G /var/spool/mail/root

La +Gopción se usa para mostrar primero el mensaje más reciente; No está en la parte superior del archivo, sino al final.

Es una opción de lesshacer que muestre la última página del archivo después de comenzar. Eso muestra el último mensaje (el más nuevo), si se ajusta a una página, o el final de lo contrario.

El nombre del archivo puede ser en /var/spool/mail/maillugar de/var/spool/mail/root

Volker Siegel
fuente
//, Excelente desglose. Esta respuesta sería especialmente útil para aquellas personas que no saben fácilmente qué hacer con el archivo.
Nathan Basanese
44
En caso de que alguien más se pregunte, +G"hace que menos muestre inicialmente cada archivo comenzando al final en lugar de al principio". ( linux.die.net/man/1/less )
Sam