Quel est le message "Vous avez un nouveau courrier" sous Linux / UNIX?

427

Parfois, lorsque je me connecte à une boîte et que je «su» à la racine, je reçois un mignon petit message disant que j'ai un courrier (merci à Dieu, ce n'est pas AOL).

  • Où est ce courrier?
  • Que contient-il?
  • Qui / Qu'est-ce qui l'a envoyé?
  • Quelle est son importance?

S'agit-il même d'un "courrier" dans le même sens que le courrier électronique? Ou est-ce juste mon système qui me dit quelque chose?

EDIT: En ce qui concerne cette question, serais-je capable de m'envoyer du courrier en utilisant le programme sendmail comme ceci email@localhost:?

n0pe
la source
Ce message contient le message suivant: "Ce texte fait partie du format interne de votre dossier de courrier, ...". Alors bien sûr, chaque fois que je me connecte, je suis informé que j'ai du courrier.
GEdgar
1
@GEdgar: Cela signifie généralement que vous devriez cesser d'utiliser les boîtes aux lettres mbox et migrer vers Maildir :)
grawity
1
Comment transférer le courrier: unix.stackexchange.com/questions/26666/…
Melebius
1
Dans le cas où quelqu'un regarderait, voici une option pour le diviser en fichiers uniques lisibles par Outlook:$i=0;(gc .\mail\root -raw) -split '[^, ]From '|%{$i++;sc mail$i.eml -value ("From " + $_)}
JDuarteDJ

Réponses:

354

Où est ce courrier?

Il est probable qu'il se trouve dans le fichier spool: /var/mail/$USERou /var/spool/mail/$USERsont les emplacements les plus courants sous Linux et BSD.

(D'autres emplacements sont possibles - vérifiez si $MAILest défini - mais par défaut, le système vous en informe uniquement /var(/spool)/mail.)

Habituellement , le fichier est dans un tiroir très simple Mbox le format, vous pouvez l' ouvrir dans un éditeur de texte ou pager.

Pour un moyen un peu plus pratique, la plupart des distributions sont livrées avec un programme appelé mail(ou Mail, mailx). Vous pouvez essayer muttou alpine; vous pouvez même le configurer pour qu'il soit envoyé à une boîte aux lettres externe. (Voir "Est-ce que ce vrai courrier?" Ci-dessous.)

Que contient-il et qui / quoi l'a-t-il envoyé?

Le plus souvent, les messages contiennent des travaux cron, ou un rapport de sécurité système par logwatch , ou un courrier indésirable similaire. Lisez-le et découvrez.

Quelle est son importance?

Cela dépend grandement du contenu de chaque message.

Vous devriez au moins scanner les en-têtes de sujet - souvent, les gens ignorent le courrier pendant des mois sans se rendre compte que leurs tâches quotidiennes échouent.

S'agit-il même d'un "courrier" dans le même sens que le courrier électronique? Ou est-ce juste mon système qui me dit quelque chose?

Oui pour les deux. Il est généré par votre système qui vous dit quelque chose, mais il s’agit également d’un courrier électronique réel et peut être traité comme tel.

Vous pouvez (et devriez) configurer votre logiciel de messagerie - le "MTA" /usr/sbin/sendmail- pour transférer les messages vers votre adresse de messagerie personnelle. Les instructions exactes varient selon le MTA (le cas échéant) que vous avez installé, qu'il s'agisse d'un ordinateur personnel ou d'un serveur, que vous ayez votre propre domaine ou utilisez un @ gmail.com , etc.

Notez que de /usr/sbin/sendmailnos jours est une API partagée et ne signifie pas nécessairement le MTA Sendmail d'origine. En fait, vous ne devriez pas utiliser Sendmail, mais quelque chose de plus moderne comme OpenSMTPD, Postfix ou Exim4. Tous fournissent le même /usr/sbin/sendmailoutil, mais ils sont plus faciles à configurer, plus sécurisés et tout aussi puissants.

Grawity
la source
3
Bonne réponse. Si vous aviez ajouté des liens avec des informations sur la façon de configurer OpenSMTPD, Postfix ou Exim4 pour transférer le courrier sur votre adresse e-mail normale, cela aurait été encore mieux.
imolit
1
Voici une question connexe qui montre comment configurer mutt : askubuntu.com/a/499335/75735
KalenGi
Très bonne réponse. Mais comment utiliser mailpour lire un courrier électronique? La page de manuel ne dit pas.
Jpaugh
1
J'ai consulté mon courrier avec la commande cat / var / mail / $ USER et je l'ai supprimé avec la commande rm -rf / var / mail / $ USER.
Sinan Eldem
@grawity dois-je supprimer les fichiers /var/mail/lorsque je les lis ou simplement effacer le texte qu'ils contiennent ? Merci!
Yaylitzis
207

Le moyen le plus simple pour moi était d'exécuter ce qui suit dans un terminal:

cat /var/spool/mail/root
Maclovin
la source
5
La meilleure réponse pratique à ce jour qui ajoute réellement à la connaissance. Maintenant je peux lire le courrier. Je me demande pourquoi c'est la réponse la plus basse.
CDR
37
Je me rends compte que c'est une question / réponse assez ancienne, mais ce XKCD est pertinent pour la discussion. (Indice: survol de texte)
Blackhawk
11
Ou juste less $MAILsi vous voulez naviguer.
Walf
7
Ou less +G $MAILpour commencer à la fin.
Charlie Gorichanaz
4
@Blackhawk Et maintenant encore plus ce XKCD .
Dessert
57

Pour ceux qui se demandent comment lire ces messages un à un, vous pouvez simplement utiliser «mail»

$ mail

Puis tapez un numéro de message dans la liste que vous souhaitez lire.

Pour aller au message suivant, vous pouvez taper 'next', une autre commande utile est 'delete' ..

Pour en savoir plus sur le fonctionnement du mailprogramme, voir le résultat de man mail.

Dominic Williams
la source
3
//, Cela ne fonctionne pas réellement, sur CEntOS 6. Dans ce cas, il faut utiliser $ mailx.
Nathan Basanese
6
Sur Ubuntu 16.04, je dois d’abord installer mailutilsen exécutantapt install mailutils
Edwin Yip
Sur les instances Amazon EC2, vous pouvez l'installer à l'aide de:sudo yum install mail
JonDoe297
1
Fonctionne pour moi sur macOS
juanmirocks
39

Juste pour clarifier les choses, il est de tradition que les boîtes UNIX exécutent un démon de messagerie "configuré localement" qui ne permet pas d'acheminer les messages via Internet, mais ne les copie que dans des répertoires spool d'autres utilisateurs (comme @John T mentionné). Il s’agit d’un véritable courrier électronique compatible SMTP, il n’est tout simplement pas acheminé par Internet car il n’est pas nécessaire de l’être.

Ainsi, si vous lancez un client de messagerie (comme alpineou mutt), vous pouvez envoyer des messages à d'autres utilisateurs du système en s'adressant à user@hostname, ou dans de nombreux cas, en spécifiant simplement l'utilisateur. Vous disposez également probablement d'un utilitaire de ligne de commande appelé mailxqui peut être utilisé pour envoyer un courrier électronique rapide à l'aide de votre shell.

Désormais, si vous souhaitez envoyer des messages à des utilisateurs sur des systèmes autres que celui auquel vous êtes connecté, le vrai plaisir commence. Vous devez configurer votre démon de messagerie pour reconnaître et transmettre le courrier électronique externe à un agent de transfert, pour configurer l'agent de transfert et pour effectuer toute une série de tâches que je ne comprends pas encore.

LawrenceC
la source
24

Où est ce courrier?

Très probablement stocké sur votre machine, dans le dossier de boîte aux lettres de votre utilisateur root (où CELA dépend du type de serveur de messagerie que vous avez installé). Vous pouvez probablement y accéder assez rapidement en alpin .

Que contient-il?

Probablement quelques trucs de type rapport système. "Untel a essayé de se connecter 10 fois avec un mot de passe incorrect" .. "Je souhaite que quelqu'un exécute des mises à jour sur moi", "le pilote échoue constamment", "Le bot NSA a augmenté les performances de 1%" .. etc..

Qui / Qu'est-ce qui l'a envoyé?

Services sur votre serveur, le plus probable.

Quelle est son importance?

Cela dépend de l’importance de votre serveur.

James T Snell
la source
Je pense que la suggestion de John de le stocker dans / var / spool / mail / root repose sur une (bonne) hypothèse selon laquelle vous exécutez sendmail. Je pense que d'autres serveurs de messagerie utilisent différents emplacements pour stocker le courrier.
James T Snell
Les utilisateurs peuvent-ils utiliser le sous-système de messagerie?
n0pe
White Phoenix: Je jetterai un œil quand mon courrier arrivera quand je le recevrai à nouveau :) Y a-t-il un moyen pour moi de le déclencher ou cette question est-elle trop localisée?
n0pe
Si vous voulez explorer la possibilité d’exécuter votre propre serveur de messagerie (que les gens utilisent dans un sens typique du courrier électronique), il serait d’abord utile de savoir quelle distro vous utilisez. Sans cette information, tout ce que je dirai, c'est que je vous suggère de lire sur sendmail (car vous utilisez probablement déjà sendmail) ..
James T Snell
La plupart d'entre eux utilisent AIX, mais j'aimerais explorer cela sur mon poste de travail à la maison qui exécute OpenSuSe
n0pe
14

Ce courrier est généralement situé dans /var/spool/mail/rootle démon sendmail (habituel) par défaut. Il contient un message électronique RAW qui peut être lu par l' mailutilitaire. Vous pouvez trouver qui l'a envoyé en exécutant l' mailutilitaire et en feuilletant les messages ou en lisant les en-têtes RAW.

L'importance du message dépend généralement du facteur précédent, qui l'a envoyé :)

De nombreux utilitaires système utiliseront le sous-système de messagerie comme moyen de rapport et de journalisation. Les utilitaires d’observation des journaux et d’autres services peuvent envoyer un courrier électronique à l’utilisateur root local pour lui rappeler un événement spécifique, tel qu’un faible espace disque ou des erreurs matérielles. Le démon de messagerie vous alertera également s'il n'a pas réussi à envoyer un courrier électronique sortant.

John T
la source
Existe-t-il un moyen de voir comment mon sous-système de messagerie est configuré?
n0pe
@Max le sendmail.mcfichier contrôle la configuration du démon sendmail sur la plupart des installations par défaut. Il est généralement situé sous /etc/mail.
John T
@ Max Je recommande fortement de lire un didacticiel tel que linuxhomenetworking.com/wiki/index.php/… pour vous aider à configurer le démon de messagerie à votre guise.
John T
Sur ubuntu 16.4., J'ai /etc/mail.rcce qui n'est pas lié àsendmail
Timo
12

less +G /var/spool/mail/root

montre les derniers mails, à la fin si le fichier.

Afficher directement le fichier courrier est une bonne idée, mais l’utilisation catpeut facilement se tromper. Vous ne voulez pas que tous les courriers fassent défiler, s'il y a beaucoup de messages ou de très longs messages dans le fichier. Je viens d'en voir une avec 150 Mo, deux millions de lignes.

Si vous n'êtes pas root:

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

L' +Goption est utilisée pour afficher le message le plus récent en premier. Ce n'est pas en haut du fichier, mais à la fin.

C'est une option lessqui permet d'afficher la dernière page du fichier après le démarrage. Cela montre le dernier message (le plus récent), s'il correspond à une page, ou la fin de celui-ci sinon.

Le nom du fichier peut être à la /var/spool/mail/mailplace de/var/spool/mail/root

Volker Siegel
la source
//, excellente ventilation. Cette réponse serait particulièrement utile pour les personnes qui ne savent pas facilement quoi faire avec le fichier.
Nathan Basanese
4
Au cas où quelqu'un se demanderait, +G"entraîne moins l'affichage initial de chaque fichier en commençant par la fin plutôt que par le début". ( linux.die.net/man/1/less )
Sam