2011-07-04 15:23:42 +0000 2011-07-04 15:23:42 +0000
446
446

Qual é a mensagem "You have new mail" no Linux/UNIX?

Por vezes, quando entro numa caixa e “su” para root, recebo uma pequena mensagem engraçada a dizer que tenho correio (graças a DEUS não é AOL).

  • Onde está este correio?
  • O que contém?
  • Quem/Que o enviou?
  • Qual é a sua importância?

  • Este é mesmo o “correio” real no mesmo sentido que o correio electrónico? Ou é apenas o meu sistema a dizer-me alguma coisa?

EDIT: Em relação a esta pergunta, seria eu capaz de me enviar correio usando o programa sendmail dessa forma: email@localhost?

Respostas (7)

367
367
367
2011-07-04 16:30:34 +0000

Onde está este mail?

É provável que esteja no ficheiro spool: /var/mail/$USER ou /var/spool/mail/$USER são os locais mais comuns em Linux e BSD.

(Outros locais são possíveis - verifique se $MAIL está definido - mas por defeito, o sistema só o informa sobre /var(/spool)/mail. )

Normalmente o ficheiro spool está num formato mbox muito simples, por isso pode abri-lo num editor de texto ou pager.

Para uma forma ligeiramente mais conveniente, a maioria das distribuições vem com um programa chamado mail (ou Mail, mailx). Pode experimentar o mutt ou alpine; pode até configurá-lo para ser enviado para uma caixa de correio externa. (Veja “este correio real?” abaixo.)

O que contém, e quem/quem o enviou?

Na maioria das vezes as mensagens contêm saída de trabalhos cron, ou um relatório de segurança do sistema por logwatch, ou lixo similar. Leia-o e descubra.

Qual é a sua importância?

Depende muito do conteúdo de cada mensagem.

Você deve pelo menos digitalizar os cabeçalhos dos assuntos - muitas vezes as pessoas ignoram o mail durante meses sem nunca se aperceberem que os seus trabalhos diários de cron falham.

Este é mesmo o “mail” real no mesmo sentido que o email? Ou é apenas o meu sistema a dizer-me alguma coisa?

Sim a ambos - é gerado pelo seu sistema a dizer-lhe alguma coisa, mas também é email real e pode ser tratado como tal.

Você pode (e deve) configurar o seu software de email - o “MTA” também conhecido por /usr/sbin/sendmail - para encaminhar as mensagens para o seu endereço de email pessoal. As instruções exactas variam dependendo do MTA (se existir) que tiver instalado, se este é um computador pessoal ou um servidor, se tem o seu próprio domínio ou se utiliza um @gmail.com, etc.

Note que /usr/sbin/sendmail hoje em dia é uma API partilhada e doesn’t significa necessariamente o MTA original do Sendmail. Na verdade, você não deve_ utilizar o Sendmail, mas algo mais moderno como OpenSMTPD, Postfix, ou Exim4. Todos eles fornecem a mesma ferramenta /usr/sbin/sendmail, mas são mais fáceis de configurar, mais seguros, e igualmente poderosos.

219
219
219
2011-11-25 11:46:45 +0000

A maneira mais fácil para mim era correr o seguinte num terminal:

cat /var/spool/mail/root
64
64
64
2014-08-30 19:47:07 +0000

Para quem estiver a pensar como ler estas mensagens uma a uma, basta usar ‘mail’

$ mail

Depois digite um número de mensagem da lista que pretende ler.

Para ir para a próxima mensagem pode digitar ‘next’, outro comando útil é ‘delete’…

Para ver mais sobre como o programa mail funciona, veja a saída do man mail.

41
41
41
2011-07-04 16:31:21 +0000

Apenas para oferecer alguns esclarecimentos, há muito tempo que é tradição as caixas UNIX correrem um daemon mailer “configurado localmente” que não encaminha mensagens através da Internet, mas apenas copia mensagens para outros directórios de spool de utilizadores (como @John T mencionou). É um email realmente compatível com SMTP, apenas não é encaminhado pela Internet porque não precisa de ser.

Assim, se ligar um cliente de email (como alpine ou mutt) pode enviar correio para outros utilizadores no sistema, endereçando para user@hostname, ou em muitos casos, apenas especificando o utilizador. É provável que também tenha um utilitário de linha de comando chamado mailx que pode ser usado para enviar um email rápido usando a sua shell.

Agora, se quiser enviar mensagens a utilizadores em sistemas diferentes daquele em que está ligado, é aí que começa a verdadeira diversão. Terá de configurar o seu mailer daemon para reconhecer e entregar o e-mail externo a um agente de transferência, configurar o agente de transferência e fazer um monte de coisas que eu próprio ainda não compreendo.

26
26
26
2011-07-04 15:29:18 +0000

Onde está este correio?

Muito provavelmente guardado na sua máquina, na pasta da caixa de correio para o seu utilizador principal (onde está isso depende do tipo de servidor de correio que tiver instalado). Provavelmente pode aceder rapidamente através de alpine.

O que é que contém?

Provavelmente apenas algum tipo de relatório do sistema. “Então e assim tentou fazer login 10 vezes com uma password incorrecta”… “Quem me dera que alguém me actualizasse”, “o driver está a falhar constantemente”, “O bot da NSA aumentou o desempenho em 1%”… etc…

Quem/Que enviou?

Serviços no seu servidor, o mais provável.

Quanta importância tem?

Depende da importância do seu servidor.

14
14
14
2011-07-04 15:28:29 +0000

Este correio está normalmente localizado em /var/spool/mail/root quando o daemon de sendmail (habitual) padrão está configurado. Ele contém uma mensagem de e-mail RAW que pode ser lida pelo utilitário mail. Quem a enviou pode ser encontrado executando o utilitário mail e paginando através das mensagens ou lendo os cabeçalhos RAW.

A importância da mensagem depende normalmente do factor anterior, quem a enviou :)

Muitos utilitários do sistema utilizarão o subsistema de correio como um meio de comunicação e registo. Os utilitários de registo e outros serviços podem enviar um e-mail ao utilizador root local como um lembrete sobre um evento específico, como espaço de disco reduzido ou erros de hardware. O daemon do mailer também o alertará caso não consiga enviar um e-mail de saída.

12
12
12
2014-09-03 00:16:39 +0000

less +G /var/spool/mail/root

mostra os últimos e-mails, no final se o ficheiro.

Mostrar directamente o ficheiro de correio é uma boa ideia, mas usar o cat pode facilmente correr mal. Não quer todos os mails passam, se houver muitas mensagens, ou mensagens muito longas no ficheiro. Acabei de ver um com 150MB, dois milhões de linhas.

Se não for o root:

sudo less +G /var/spool/mail/root A opção +G é usada para mostrar a mensagem mais recente primeiro; não está no topo do ficheiro, mas no fim.

É uma opção do less, fazendo com que mostre a última página do ficheiro depois de começar. Que mostra a última mensagem (mais recente), se couber numa página, ou no final da mesma.

O nome do ficheiro pode ser /var/spool/mail/mail em vez de /var/spool/mail/root