Frage Was ist die Nachricht "Sie haben eine neue E-Mail" in Linux / UNIX?


Manchmal, wenn ich mich in eine Box einlogge und 'su', um zu root, bekomme ich eine süße kleine Nachricht, dass ich eine Mail habe (Gott sei Dank, es ist nicht AOL).

  • Wo ist diese Mail?
  • Was enthält es?
  • Wer / Was hat es gesendet?
  • Wie wichtig ist es?

Ist das auch tatsächlich "Mail" im selben Sinne wie E-Mail? Oder ist es nur mein System, das mir etwas sagt?

BEARBEITEN: Im Verhältnis zu Dies Frage, ob ich in der Lage wäre, mir mit dem sendmail-Programm wie folgt zu mailen: email@localhost?


370
2017-07-04 15:23


Ursprung


Ich habe diese eine Nachricht dort, die sagt "Dieser Text ist Teil des internen Formats Ihres Mail-Ordners, ..." also natürlich, wenn ich mich anmelde, werde ich informiert, dass ich Post habe. - GEdgar
@ GEdgar: Das bedeutet normalerweise, dass du aufhören solltest zu verwenden mbox Postfächer und migrieren nach Maildir :) - grawity
Verbunden: superuser.com/questions/149282/ ... - dmckee
So leiten Sie die Mail weiter: unix.stackexchange.com/questions/26666/... - Melebius
Für den Fall, dass jemand sucht, hier ist PowerShell-One-Liner, um das in einzelne Dateien aufgeteilt von Outlook lesbar: $i=0;(gc .\mail\root -raw) -split '[^, ]From '|%{$i++;sc mail$i.eml -value ("From " + $_)} - JDuarteDJ


Antworten:


Wo ist diese Mail?

Es ist wahrscheinlich in der Spool-Datei zu sein: /var/mail/$USER oder /var/spool/mail/$USER sind die häufigsten Standorte auf Linux und BSD.

(Andere Standorte sind möglich - prüfen Sie, ob $MAIL ist eingestellt - aber standardmäßig informiert Sie das System nur darüber /var(/spool)/mail.)

Normalerweise ist die Spool-Datei sehr einfach mbox Format, so dass Sie es in einem Texteditor oder Pager öffnen können.

Für eine etwas bequemere Art, die meisten Distributionen kommen mit einem Programm namens mail (oder Mail, mailx). Du kannst es versuchen mutt oder alpine; Sie können es sogar so konfigurieren, dass es an ein externes Postfach gesendet wird. (Siehe "Ist das echte Mail?" Unten.)

Was enthält es und wer / was hat es gesendet?

Meistens enthalten die Nachrichten die Ausgabe von Cron-Jobs oder einen System-Sicherheitsbericht von Logwatchoder ähnlicher Müll. Lies es und finde es heraus.

Wie wichtig ist es?

Hängt stark vom Inhalt jeder Nachricht ab.

Sie sollte scannen Sie zumindest die Header der Betreffzeile - oft ignorieren die Leute die Mail monatelang, ohne zu merken, dass ihre täglichen Cron-Jobs fehlschlagen.

Ist das auch tatsächlich "Mail" im selben Sinne wie E-Mail? Oder ist es nur mein System, das mir etwas sagt?

Ja zu beiden - es wird von Ihrem System generiert, das Ihnen etwas sagt, aber es ist auch echte E-Mail und kann als solche behandelt werden.

Sie können (und sollten) Ihre Mail-Software konfigurieren - die "MTA" aka /usr/sbin/sendmail - um die Nachrichten an Ihre persönliche Mailadresse weiterzuleiten. Die genauen Anweisungen hängen davon ab, welchen MTA (falls vorhanden) Sie installiert haben, ob es sich um einen Personal Computer oder einen Server handelt, ob Sie eine eigene Domain besitzen oder ein @gmail.com, und so weiter.

Beachten Sie, dass /usr/sbin/sendmail Heutzutage ist eine gemeinsame API und nicht bedeutet unbedingt den ursprünglichen Sendmail-MTA. In der Tat, du sollte nicht Verwenden Sie Sendmail, aber etwas moderneres wie OpenSMTPD, Postfix oder Exim4. Alle von ihnen bieten das gleiche /usr/sbin/sendmail Tool, aber sie sind einfacher zu konfigurieren, sicherer und genauso leistungsstark.


307
2017-07-04 16:30



Gute Antwort. Hätten Sie Links mit Informationen zur Konfiguration von OpenSMTPD, Postfix oder Exim4 hinzugefügt, um E-Mails an Ihre normale E-Mail-Adresse weiterzuleiten, wäre es sogar noch besser gewesen. - imolit
Hier ist eine verwandte Frage, die zeigt, wie Sie das Setup vornehmen Köter: askubuntu.com/a/499335/75735 - KalenGi
Gute Antwort. Aber wie benutze ich? mail E-Mails lesen? Das Manpage sagt nicht. - jpaugh
Ich sah meine Mail mit dem Befehl cat / var / mail / $ USER an und entfernte sie mit dem Befehl rm -rf / var / mail / $ USER. - Sinan Eldem
@grawity sollte ich die Dateien löschen in /var/mail/ wenn ich sie lese oder nur den Text in ihnen lösche? Danke! - yaylitzis


Der einfachste Weg für mich war folgendes in einem Terminal laufen zu lassen:

cat /var/spool/mail/root

178
2017-11-25 11:46



Beste praktische Antwort bis jetzt, die tatsächlich zum Wissen beiträgt. Jetzt kann ich die Post lesen. Ich frage mich, warum es die unterste Antwort ist. - CDR
Ich weiß, das ist eine ziemlich alte Frage / Antwort, aber diese XKCD ist relevant für die Diskussion. (Hinweis: Hover-Text) - Blackhawk
Oder nur less $MAIL wenn Sie navigieren möchten. - Walf
Oder less +G $MAIL am Ende beginnen. - Charlie Gorichanaz
@Blackhawk Und jetzt noch mehr diese XKCD. - dessert


Um nur einige Erläuterungen zu geben, ist es seit langem Tradition, dass UNIX-Boxen einen "lokal konfigurierten" Mailer-Daemon ausführen, der keine Nachrichten über das Internet weiterleitet, sondern nur Nachrichten an andere Benutzer-Spool-Verzeichnisse kopiert (als @John T erwähnt). Es ist echte SMTP-konforme E-Mail, es wird einfach nicht über das Internet geroutet, weil es nicht notwendig ist.

Wenn Sie also einen E-Mail-Client starten (z. B. alpine oder mutt) Sie können E-Mails an andere Benutzer im System senden, indem Sie an user@hostnameoder in vielen Fällen nur den Benutzer angeben. Sie haben wahrscheinlich auch ein Befehlszeilen-Dienstprogramm aufgerufen mailx Das kann verwendet werden, um eine schnelle E-Mail mit Ihrer Shell zu senden.

Wenn Sie jetzt Nachrichten an Benutzer auf anderen Systemen als dem, in dem Sie angemeldet sind, senden möchten, beginnt der eigentliche Spaß. Sie müssen Ihren Mailer-Daemon so konfigurieren, dass er externe E-Mails an einen Transferagenten erkennt und weitergibt, den Transferagenten konfiguriert und eine ganze Menge Dinge erledigt, die ich selbst noch nicht verstehe.


36
2017-07-04 16:31





Für jeden, der sich fragt, wie man diese Nachrichten einzeln liest, können Sie einfach 'mail' verwenden

$ mail

Geben Sie dann eine Nachrichtennummer aus der Liste ein, die Sie lesen möchten.

Um zur nächsten Nachricht zu gelangen, können Sie 'next' eingeben, ein weiterer nützlicher Befehl ist 'delete' ..

Um mehr darüber zu sehen, wie mail Programm funktioniert, siehe die Ausgabe von man mail.


36
2017-08-30 19:47



//, Dies funktioniert nicht wirklich, auf CEntOS 6. In diesem Fall muss man verwenden $ mailx. - Nathan Basanese
Unter Ubuntu 16.04 muss ich zuerst installieren mailutils durch Laufen apt install mailutils - Edwin Yip
Auf Amazon EC2-Instanzen können Sie sie mit installieren sudo yum install mail - JonDoe297
Funktioniert für mich auf macOS - juanmirocks


Wo ist diese Mail?

Sehr wahrscheinlich auf Ihrem Computer gespeichert, in dem Postfach-Ordner für Ihren Root-Benutzer (wo das ist hängt davon ab, welche Art von Mail-Server Sie installiert haben). Sie können wahrscheinlich ziemlich schnell darauf zugreifen alpin.

Was enthält es?

Wahrscheinlich nur ein paar Systemberichte. "So und so versuchte, sich 10 Mal mit einem falschen Passwort einzuloggen" .. "Ich wünschte, jemand würde Updates über mich laufen lassen", "Treiber  Der-und-so scheitert ständig "," Der NSA-Bot hat die Leistung um 1% gesteigert ".. etc ..

Wer / Was hat es gesendet?

Dienste auf Ihrem Server, wahrscheinlich.

Wie wichtig ist es?

Hängt davon ab, wie wichtig Ihr Server ist.


23
2017-07-04 15:29



Ich denke Johns Vorschlag, dass es in / var / spool / mail / root gespeichert ist, basiert auf einer (guten) Annahme, dass du sendmail betreibst. Ich denke, andere Mail-Server verwenden unterschiedliche Speicherorte zum Speichern von E-Mails. - James T Snell
Gibt es eine Möglichkeit für Benutzer, das Mail-Subsystem zu verwenden? - n0pe
White Phoenix: Ich schaue, wenn meine Mail ist, wenn ich die Nachricht wieder bekomme :) Gibt es eine Möglichkeit für mich, es auszulösen oder ist das zu lokalisiert von einer Frage? - n0pe
Wenn Sie herausfinden möchten, wie Sie Ihren eigenen Mail-Server betreiben (den die Leute in einem typischen E-Mail-Sinn verwenden), würde es Ihnen zunächst helfen zu wissen, welche Distribution Sie gerade betreiben. Ohne diese Informationen, alles was ich sagen werde, ist, dass ich schlage vor, dass Sie sich über sendmail informieren (da Sie wahrscheinlich bereits sendmail betreiben). - James T Snell
Die meisten von ihnen laufen AIX, aber ich möchte dies auf meiner Workstation zu Hause mit OpenSuSe erkunden - n0pe


Diese E-Mail befindet sich normalerweise in /var/spool/mail/root wenn der (übliche) Standard-sendmail-Daemon konfiguriert ist. Es enthält eine RAW-E-Mail-Nachricht, die von der mail Nützlichkeit. Wer es gesendet hat, kann durch Ausführen der gefunden werden mail Dienstprogramm und Paging durch die Nachrichten oder Lesen der RAW-Header.

Die Wichtigkeit der Nachricht hängt normalerweise vom vorherigen Faktor ab, der sie gesendet hat :)

Viele Systemdienstprogramme verwenden das E-Mail-Subsystem als Mittel zur Berichterstellung und Protokollierung. Log Watcher-Dienstprogramme und andere Dienste senden möglicherweise eine E-Mail an den lokalen Root-Benutzer als Erinnerung an ein bestimmtes Ereignis, z. B. geringen Speicherplatz oder Hardwarefehler. Der Mailer-Daemon wird Sie auch warnen, wenn er keine E-Mail senden konnte.


13
2017-07-04 15:28



Gibt es eine Möglichkeit zu sehen, wie mein Mail-Subsystem eingerichtet ist? - n0pe
@ Max der sendmail.mc Datei steuert die Konfiguration des Sendmail-Daemons bei den meisten Standardinstallationen. Es befindet sich typischerweise unter /etc/mail. - John T
@Max Ich würde dringend empfehlen, durch ein Tutorial wie linuxhomenetworking.com/wiki/index.php/... um Ihnen zu helfen, den Mailer-Daemon wie gewünscht zu konfigurieren. - John T
Auf Ubuntu 16.4. Habe ich /etc/mail.rc was nicht damit zusammenhängt sendmail - Timo


less +G /var/spool/mail/root

zeigt die letzten Mails, am Ende der Datei.

Es ist eine gute Idee, die Mail-Datei direkt anzuzeigen, aber zu verwenden cat kann leicht schief gehen. Du willst nicht alle Mails laufen vorbei, wenn viele Nachrichten oder sehr lange Nachrichten in der Datei sind. Ich habe gerade einen mit 150MB, zwei Millionen Zeilen gesehen.

Wenn Sie nicht root sind:

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

Das +G Option wird verwendet, um die neueste Nachricht zuerst anzuzeigen; Es ist nicht an der Spitze der Datei, sondern am Ende.

Es ist eine Option von lessDadurch wird die letzte Seite der Datei nach dem Start angezeigt. Diese zeigen die letzte Nachricht (neuestes), wenn sie zu einer Seite passt, oder das Ende der anderen Seite.

Der Dateiname kann sein /var/spool/mail/mail Anstatt von /var/spool/mail/root


10
2017-09-03 00:16



//, Ausgezeichneter Zusammenbruch. Diese Antwort wäre besonders nützlich für diejenigen Leute, die nicht leicht wissen, was mit der Datei zu tun ist. - Nathan Basanese
Falls jemand anderes sich fragt, +G "Weniger bewirkt, dass anfangs jede Datei am Ende anstatt am Anfang angezeigt wird." (linux.die.net/man/1/less) - Sam
@Sam Danke, etwas mehr verfeinert. - Volker Siegel