Co to jest komunikat „Masz nową pocztę” w systemie Linux / UNIX?

426

Czasami, kiedy loguję się do skrzynki i „su”, aby zrootować, otrzymuję słodką małą wiadomość z informacją, że mam pocztę (dzięki Bogu, to nie jest AOL).

  • Gdzie jest ta poczta?
  • Co zawiera
  • Kto / co to wysłał?
  • Jak to jest ważne

Czy jest to nawet „poczta” w tym samym znaczeniu co poczta elektroniczna? Czy to tylko mój system coś mi mówi?

EDIT: W odniesieniu do tej kwestii, chciałbym móc wysyłać sobie pocztę za pomocą programu sendmail tak: email@localhost?

n0pe
źródło
Mam tam jedną wiadomość z napisem „Ten tekst jest częścią wewnętrznego formatu folderu poczty…”, więc oczywiście przy każdym logowaniu jestem informowany, że mam pocztę.
GEdgar
1
@GEdgar: Zazwyczaj oznacza to, że powinieneś przestać używać skrzynek pocztowych mbox i przeprowadzić migrację do Maildir :)
grawity
1
Jak przesłać mail: unix.stackexchange.com/questions/26666/...
Melebius
1
Na wypadek, gdyby ktoś szukał, oto jedno-liniowy program Powerhshell, który dzieli go na pojedyncze pliki, które można odczytać z perspektywy programu:$i=0;(gc .\mail\root -raw) -split '[^, ]From '|%{$i++;sc mail$i.eml -value ("From " + $_)}
JDuarteDJ

Odpowiedzi:

354

Gdzie jest ta poczta?

Prawdopodobnie znajduje się w zbiorze buforowym: /var/mail/$USERlub /var/spool/mail/$USERsą najczęstszymi lokalizacjami w Linuksie i BSD.

(Możliwe są inne lokalizacje - sprawdź, czy $MAILjest ustawione - ale domyślnie system tylko o tym informuje /var(/spool)/mail.)

Zwykle plik buforowania jest w bardzo prostym formacie mbox , więc można go otworzyć w edytorze tekstu lub pager.

Dla nieco wygodniejszego sposobu większość dystrybucji zawiera program o nazwie mail(lub Mail, mailx). Możesz spróbować muttlub alpine; możesz nawet skonfigurować go tak, aby był wysyłany na zewnętrzną skrzynkę pocztową. (Zobacz „czy to jest prawdziwa poczta?” Poniżej.)

Co zawiera i kto / co wysłał?

Najczęściej wiadomości zawierają dane wyjściowe zadań cron lub raport bezpieczeństwa systemu według logwatch lub podobne śmieci. Przeczytaj i dowiedz się.

Jak to jest ważne

Zależy w dużej mierze od zawartości każdej wiadomości.

Państwo powinno przynajmniej skanować których tematy - często ludzie ignorują pocztę miesiącami nie zdając sobie sprawy, że ich codzienne crona niepowodzeniem.

Czy jest to nawet „poczta” w tym samym znaczeniu co poczta elektroniczna? Czy to tylko mój system coś mi mówi?

Tak dla obu - jest generowany przez Twój system, który coś ci mówi, ale jest to również faktyczna wiadomość e-mail i może być traktowany jako taki.

Możesz (i powinieneś) skonfigurować swoje oprogramowanie pocztowe - zwane też „MTA” /usr/sbin/sendmail- w celu przekazywania wiadomości na swój osobisty adres e-mail. Dokładne instrukcje różnią się w zależności od zainstalowanego MTA (jeśli taki jest), czy jest to komputer osobisty czy serwer, czy masz własną domenę, czy korzystasz z @ gmail.com i tak dalej.

Należy zauważyć, że /usr/sbin/sendmailw dzisiejszych czasach jest wspólna API i nie musi oznaczać oryginalnego Sendmail MTA. W rzeczywistości nie powinieneś używać Sendmaila, ale czegoś bardziej nowoczesnego, takiego jak OpenSMTPD, Postfix lub Exim4. Wszystkie zapewniają to samo /usr/sbin/sendmailnarzędzie, ale są łatwiejsze do skonfigurowania, bezpieczniejsze i tak samo wydajne.

grawitacja
źródło
3
Dobra odpowiedź. Gdybyś dodał linki z informacjami o tym, jak skonfigurować OpenSMTPD, Postfix lub Exim4, aby przekazywać pocztę na twój normalny adres e-mail, byłoby jeszcze lepiej.
imolit
1
Oto powiązane pytanie, które pokazuje, jak skonfigurować mutt : askubuntu.com/a/499335/75735
KalenGi
Świetna odpowiedź. Ale jak mam mailczytać e-maile? Podręcznika nie mówi.
jpaugh
1
Przeglądałem pocztę za pomocą komendy cat / var / mail / $ USER i usunąłem ją za pomocą komendy rm -rf / var / mail / $ USER.
Sinan Eldem
@grawity powinienem usunąć pliki, /var/mail/gdy je czytam, czy po prostu wyczyścić tekst w nich? Dziękuję Ci!
yaylitzis
205

Najłatwiejszy sposób to uruchomienie w terminalu:

cat /var/spool/mail/root
Maclovin
źródło
5
Najlepsza jak dotąd praktyczna odpowiedź, która faktycznie wzbogaca wiedzę. Teraz mogę przeczytać pocztę. Zastanawiam się, dlaczego jest to najniższa odpowiedź.
CDR
37
Zdaję sobie sprawę, że to dość stare pytanie / odpowiedź, ale ten XKCD jest istotny w dyskusji. (podpowiedź: tekst zawisu)
Blackhawk
11
Lub tylko less $MAILjeśli chcesz nawigować.
Walf
7
Lub less +G $MAILzacząć od końca.
Charlie Gorichanaz
4
@Blackhawk A teraz jeszcze więcej tego XKCD .
deser
56

Każdy, kto zastanawia się, jak czytać te wiadomości jeden po drugim, może po prostu użyć „poczty”

$ mail

Następnie wpisz numer wiadomości z listy, którą chcesz przeczytać.

Aby przejść do następnej wiadomości, możesz wpisać „next”, kolejnym przydatnym poleceniem jest „delete”.

Aby dowiedzieć się więcej o tym, jak mailprogram działa, zobacz wynik działania man mail.

Dominic Williams
źródło
3
//, To naprawdę nie działa, na CEntOS 6. W takim przypadku należy użyć $ mailx.
Nathan Basanese
6
W systemie Ubuntu 16.04 muszę najpierw zainstalować mailutils, uruchamiającapt install mailutils
Edwin Yip,
W instancjach Amazon EC2 można go zainstalować przy użyciusudo yum install mail
JonDoe297,
1
Działa dla mnie na macOS
juanmirocks
39

Aby wyjaśnić, od dawna tradycją jest, że boxy UNIXa uruchamiają „lokalnie skonfigurowanego” demona mailera, który nie kieruje wiadomości przez Internet, a jedynie kopiuje wiadomości do katalogów buforowania innych użytkowników (jak @John T wzmiankowany). To prawdziwa wiadomość e-mail zgodna z SMTP, po prostu nie jest przesyłana przez Internet, ponieważ nie musi tak być.

Jeśli więc uruchomisz klienta poczty e-mail (np. alpineLub mutt), możesz wysłać pocztę do innych użytkowników w systemie, kierując je do user@hostname, lub w wielu przypadkach, po prostu określając użytkownika. Prawdopodobnie masz także narzędzie wiersza polecenia o nazwie, mailxktórego można użyć do wysłania szybkiego e-maila za pomocą powłoki.

Teraz, jeśli chcesz wysyłać wiadomości do użytkowników w systemach innych niż ten, w którym jesteś zalogowany, tam zaczyna się prawdziwa zabawa. Musisz skonfigurować demona mailera, aby rozpoznawał i przekazywał pocztę zewnętrzną agentowi transferowemu, konfigurował agenta transferowego i robił całą masę rzeczy, których sam jeszcze nie rozumiem.

LawrenceC
źródło
24

Gdzie jest ta poczta?

Najprawdopodobniej przechowywane na twoim komputerze, w folderze skrzynki pocztowej dla użytkownika root (gdzie TO zależy od rodzaju zainstalowanego serwera pocztowego). Prawdopodobnie można uzyskać do niego dostęp dość szybko przez alpejskie .

Co zawiera

Prawdopodobnie tylko niektóre rodzaje raportów systemowych. „Tak i tak próbowałem zalogować się 10 razy przy użyciu niepoprawnego hasła” .. „Chciałbym, żeby ktoś uruchomił na mnie aktualizacje”, „Sterownik taki a taki ciągle się zawiesza”, „Bot NSA zwiększył wydajność o 1%” .. itp ..

Kto / co to wysłał?

Najprawdopodobniej usługi na twoim serwerze.

Jak to jest ważne

Zależy jak ważny jest twój serwer.

James T. Snell
źródło
Myślę, że sugestia Johna, że ​​jest przechowywana w / var / spool / mail / root, opiera się na (dobrym) założeniu, że korzystasz z sendmaila. Myślę, że inne serwery pocztowe używają różnych lokalizacji do przechowywania poczty.
James T Snell
Czy użytkownicy mogą korzystać z podsystemu poczty?
n0pe
White Phoenix: Przyjrzę się, kiedy moja poczta pojawi się ponownie, gdy otrzymam wiadomość :) Czy jest jakiś sposób, aby ją uruchomić, czy jest to zbyt zlokalizowane pytanie?
n0pe
Jeśli chcesz zbadać działanie własnego serwera pocztowego (z którego korzystają ludzie w typowym sensie e-mail), najpierw pomoże Ci dowiedzieć się, jaką dystrybucję prowadzisz? Bez tych informacji powiem tylko, że sugeruję przeczytanie na sendmailu (ponieważ prawdopodobnie już korzystasz z sendmaila) ..
James T Snell
Większość z nich korzysta z systemu AIX, ale chciałbym to zbadać na mojej stacji roboczej w domu z systemem
OpenSuSe
14

Ta poczta jest zwykle umieszczana, /var/spool/mail/rootgdy skonfigurowany jest (zwykły) domyślny demon sendmail. Zawiera wiadomość e-mail RAW, którą narzędzie może odczytać mail. Kto go wysłał, można go znaleźć, uruchamiając mailnarzędzie i przeglądając wiadomości lub czytając nagłówki RAW.

Znaczenie wiadomości zwykle zależy od poprzedniego czynnika, który ją wysłał :)

Wiele narzędzi systemowych będzie wykorzystywać podsystem poczty jako sposób raportowania i logowania. Narzędzia obserwatora dziennika i inne usługi mogą wysyłać wiadomość e-mail do lokalnego użytkownika root jako przypomnienie o określonym zdarzeniu, takim jak mało miejsca na dysku lub błędy sprzętowe. Demon mailera również ostrzeże Cię, jeśli nie wyśle ​​wiadomości wychodzącej.

John T.
źródło
Czy istnieje sposób, aby zobaczyć, jak skonfigurowany jest mój podsystem poczty?
n0pe
@Maks. sendmail.mcKonfiguracja pliku steruje demonem sendmaila w większości domyślnych instalacji. Zazwyczaj znajduje się pod /etc/mail.
John T
@ Max Zdecydowanie polecam przeczytanie samouczka, takiego jak linuxhomenetworking.com/wiki/index.php/…, aby pomóc Ci skonfigurować demona mailera zgodnie z potrzebami.
John T
Na Ubuntu 16.4. Mam, /etc/mail.rcktóry nie jest związany zsendmail
Timo
12

less +G /var/spool/mail/root

pokazuje najnowsze maile, na końcu jeśli plik.

Bezpośrednie wyświetlenie pliku poczty jest dobrym pomysłem, ale korzystanie z niego catmoże się nie powieść. Nie chcesz przewijać wszystkich wiadomości e-mail, jeśli w pliku jest wiele wiadomości lub bardzo długie wiadomości. Właśnie widziałem jeden z 150 MB, dwa miliony linii.

Jeśli nie jesteś rootem:

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

+GOpcja służy do wyświetlania Najnowszy komunikat pierwszy; Nie znajduje się na początku pliku, ale na końcu.

Jest to opcja polegająca na lesswyświetleniu ostatniej strony pliku po uruchomieniu. Wyświetla ostatnią wiadomość (najnowszą), jeśli pasuje do jednej strony, lub koniec tej strony w inny sposób.

Nazwa pliku może być /var/spool/mail/mailzamiast/var/spool/mail/root

Volker Siegel
źródło
// Doskonały podział. Ta odpowiedź byłaby szczególnie przydatna dla osób, które nie wiedzą, co zrobić z plikiem.
Nathan Basanese
4
W przypadku, gdy ktoś się zastanawia, +G„powoduje, że początkowo mniej wyświetla każdy plik, zaczynając od końca niż od początku”. ( linux.die.net/man/1/less )
Sam