Apa pesan "You have mail baru" di Linux / UNIX?

427

Kadang-kadang, ketika saya masuk ke sebuah kotak dan 'su' untuk me-root, saya mendapat pesan kecil yang lucu mengatakan saya punya surat (terima kasih Tuhan itu bukan AOL).

  • Di mana surat ini?
  • Apa isinya?
  • Siapa / Apa yang mengirimnya?
  • Seberapa pentingkah itu?

Apakah ini "surat" yang sebenarnya dalam arti yang sama dengan email? Atau hanya sistem saya yang mengatakan sesuatu kepada saya?

EDIT: Sehubungan dengan ini pertanyaan, akan saya dapat mengirim sendiri surat menggunakan program sendmail seperti: email@localhost?

n0pe
sumber
Saya memiliki satu pesan di sana yang mengatakan "Teks ini adalah bagian dari format internal folder email Anda, ..." jadi tentu saja setiap kali saya masuk saya diberitahu bahwa saya memiliki email.
GEdgar
1
@GEdgar: Ini biasanya berarti Anda harus berhenti menggunakan kotak surat mbox dan bermigrasi ke Maildir :)
grawity
1
Cara meneruskan surat: unix.stackexchange.com/questions/26666/…
Melebius
1
Jika ada yang melihat, ini adalah powerhshell one-liner untuk membaginya menjadi satu file yang dapat dibaca oleh outlook:$i=0;(gc .\mail\root -raw) -split '[^, ]From '|%{$i++;sc mail$i.eml -value ("From " + $_)}
JDuarteDJ

Jawaban:

354

Di mana surat ini?

Ini kemungkinan berada di file spool: /var/mail/$USERatau /var/spool/mail/$USERmerupakan lokasi yang paling umum di Linux dan BSD.

(Lokasi lain dimungkinkan - periksa apakah $MAILtelah diatur - tetapi secara default, sistem hanya memberi tahu Anda tentang hal itu /var(/spool)/mail.)

Biasanya file spool dalam format mbox yang sangat sederhana , sehingga Anda dapat membukanya di editor teks atau pager.

Untuk cara yang sedikit lebih nyaman, sebagian besar distribusi disertai dengan program yang disebut mail(atau Mail, mailx). Anda dapat mencoba muttatau alpine; Anda bahkan dapat mengonfigurasinya untuk dikirim ke kotak surat luar. (Lihat "apakah ini surat asli?" Di bawah.)

Apa isinya, dan siapa / apa yang mengirimnya?

Paling sering pesan berisi output dari pekerjaan cron, atau laporan keamanan sistem oleh logwatch , atau sampah serupa. Baca dan temukan.

Seberapa pentingkah itu?

Sangat tergantung pada isi setiap pesan.

Anda setidaknya harus memindai header subjek - seringkali orang mengabaikan email selama berbulan-bulan tidak pernah menyadari bahwa pekerjaan cron harian mereka gagal.

Apakah ini "surat" yang sebenarnya dalam arti yang sama dengan email? Atau hanya sistem saya yang mengatakan sesuatu kepada saya?

Ya untuk keduanya - ini dibuat oleh sistem Anda untuk memberi tahu Anda sesuatu, tetapi juga email yang sebenarnya dan dapat ditangani seperti itu.

Anda dapat (dan harus) mengkonfigurasi perangkat lunak surat Anda - alias "MTA" /usr/sbin/sendmail- untuk meneruskan pesan ke alamat surat pribadi Anda. Instruksi yang tepat bervariasi tergantung pada MTA mana (jika ada) yang telah Anda instal, apakah ini komputer pribadi atau server, apakah Anda memiliki domain sendiri atau menggunakan @ gmail.com , dan sebagainya.

Perhatikan bahwa /usr/sbin/sendmailsaat ini adalah API bersama dan tidak selalu berarti MTA Sendmail asli. Bahkan, Anda seharusnya tidak menggunakan Sendmail, tetapi sesuatu yang lebih modern seperti OpenSMTPD, Postfix, atau Exim4. Semuanya menyediakan /usr/sbin/sendmailalat yang sama , tetapi lebih mudah dikonfigurasi, lebih aman, dan sama kuatnya.

grawity
sumber
3
Jawaban yang bagus. Seandainya Anda menambahkan tautan dengan informasi tentang cara mengkonfigurasi OpenSMTPD, Postfix atau Exim4 untuk meneruskan email ke alamat email normal Anda, akan lebih baik.
imolit
1
Berikut pertanyaan terkait yang menunjukkan cara menyiapkan mutt : askubuntu.com/a/499335/75735
KalenGi
Jawaban yang bagus Tetapi bagaimana saya menggunakan mailuntuk membaca email? Halaman manual tidak mengatakan.
jpaugh
1
Saya melihat email saya dengan perintah cat / var / mail / $ USER dan menghapusnya dengan perintah rm -rf / var / mail / $ USER.
Sinan Eldem
@grawity haruskah saya menghapus file /var/mail/ketika saya membacanya atau hanya menghapus teks di dalamnya? Terima kasih!
yaylitzis
206

Cara termudah bagi saya adalah menjalankan yang berikut di terminal:

cat /var/spool/mail/root
Maclovin
sumber
5
Jawaban praktis terbaik sejauh ini yang benar-benar menambah pengetahuan. Sekarang saya bisa membaca surat. Saya bertanya-tanya mengapa itu adalah jawaban terbanyak.
CDR
37
Saya menyadari ini adalah pertanyaan / jawaban yang cukup lama, tetapi XKCD ini relevan dengan diskusi. (petunjuk: arahkan kursor teks)
Blackhawk
11
Atau hanya less $MAILjika Anda ingin menavigasi.
Walf
7
Atau less +G $MAILmulai dari akhir.
Charlie Gorichanaz
4
@ Blackhawk Dan sekarang bahkan lebih XKCD ini .
hidangan penutup
57

Bagi siapa pun yang bertanya-tanya cara membaca pesan-pesan ini satu per satu, Anda bisa menggunakan 'email'

$ mail

Kemudian ketikkan nomor pesan dari daftar yang ingin Anda baca.

Untuk mendapatkan pesan berikutnya, Anda dapat mengetik 'berikutnya', perintah lain yang berguna adalah 'hapus' ..

Untuk melihat lebih lanjut tentang cara kerja mailprogram, lihat output dari man mail.

Dominic Williams
sumber
3
//, Ini tidak benar-benar berfungsi, pada CEntOS 6. Dalam hal ini, kita harus menggunakan $ mailx.
Nathan Basanese
6
Pada Ubuntu 16.04, saya harus menginstal dulu mailutilsdengan menjalankanapt install mailutils
Edwin Yip
Pada contoh Amazon EC2, Anda dapat menginstalnya menggunakansudo yum install mail
JonDoe297
1
Bekerja untuk saya di macOS
juanmirocks
39

Hanya untuk menawarkan klarifikasi, sudah menjadi tradisi untuk waktu yang lama bagi kotak UNIX untuk menjalankan daemon mailer "yang dikonfigurasi secara lokal" yang tidak merutekan pesan melalui Internet, tetapi hanya menyalin pesan ke direktori spool pengguna lain (seperti @John T tersebut). Ini adalah email yang benar-benar sesuai dengan SMTP, hanya saja tidak dialihkan melalui Internet karena tidak perlu.

Jadi, jika Anda menjalankan klien email (suka alpineatau mutt), Anda dapat mengirim email ke pengguna lain di sistem dengan menyapa user@hostname, atau dalam banyak kasus, hanya menentukan pengguna. Anda juga mungkin memiliki utilitas baris perintah yang disebut mailxyang dapat digunakan untuk mengirim email cepat menggunakan shell Anda.

Sekarang, jika Anda ingin mengirim pesan ke pengguna di sistem selain yang Anda masuki, di situlah kesenangan sebenarnya dimulai. Anda harus mengonfigurasi daemon mailer Anda untuk mengenali dan menyerahkan email eksternal ke agen transfer, mengkonfigurasi agen transfer, dan melakukan banyak hal yang belum saya mengerti.

LawrenceC
sumber
24

Di mana surat ini?

Sangat mungkin disimpan di mesin Anda, di folder kotak surat untuk pengguna root Anda (di mana ITULAH tergantung pada jenis server email yang telah Anda instal). Anda mungkin dapat mengaksesnya dengan cukup cepat melalui alpine .

Apa isinya?

Mungkin hanya beberapa jenis laporan sistem. "Berulang kali mencoba masuk 10 kali dengan kata sandi yang salah" .. "Saya berharap seseorang menjalankan pembaruan pada saya", "driver ini-dan-itu gagal terus-menerus", "Bot NSA telah meningkatkan kinerja sebesar 1%" .. dll ..

Siapa / Apa yang mengirimnya?

Layanan di server Anda, kemungkinan besar.

Seberapa pentingkah itu?

Tergantung pada seberapa penting server Anda.

James T Snell
sumber
Saya pikir saran John bahwa itu disimpan di / var / spool / mail / root didasarkan pada asumsi (baik) bahwa Anda menjalankan sendmail. Saya pikir server email lain menggunakan lokasi berbeda untuk menyimpan email.
James T Snell
Apakah ada cara bagi pengguna untuk menggunakan subsistem email?
n0pe
White Phoenix: Saya akan melihat ketika email saya adalah ketika saya mendapatkan pesan lagi :) Apakah ada cara bagi saya untuk memicu atau apakah itu terlokalisasi dari sebuah pertanyaan?
n0pe
Jika Anda ingin menjelajahi menjalankan server email Anda sendiri (yang digunakan orang dalam arti email biasa), pertama-tama akan membantu untuk mengetahui distro apa yang Anda jalankan? Tanpa info itu, saya hanya akan mengatakan, saya sarankan Anda membaca di sendmail (karena Anda mungkin sudah menjalankan sendmail) ..
James T Snell
Sebagian besar dari mereka menjalankan AIX tetapi saya ingin menjelajahi ini di workstation saya di rumah menjalankan OpenSuSe
n0pe
14

Email ini biasanya terletak di /var/spool/mail/rootsaat daemon sendmail default (biasanya) dikonfigurasi. Ini berisi pesan email RAW yang dapat dibaca oleh mailutilitas. Siapa yang mengirimnya dapat ditemukan dengan menjalankan mailutilitas dan paging melalui pesan atau membaca header RAW.

Pentingnya pesan biasanya tergantung pada faktor sebelumnya, siapa yang mengirimnya :)

Banyak utilitas sistem akan menggunakan subsistem email sebagai sarana pelaporan dan pencatatan. Utilitas pengamat log dan layanan lain dapat mengirim email ke pengguna root lokal sebagai pengingat tentang peristiwa tertentu, seperti ruang disk rendah atau kesalahan perangkat keras. Daemon mailer juga akan mengingatkan Anda jika gagal mengirim e-mail keluar.

John T
sumber
Apakah ada cara untuk melihat bagaimana subsistem email saya diatur?
n0pe
@Max sendmail.mcfile mengontrol konfigurasi daemon sendmail pada sebagian besar instalasi default. Biasanya terletak di bawah /etc/mail.
John T
@ Max Saya sangat merekomendasikan membaca tutorial seperti linuxhomenetworking.com/wiki/index.php/… untuk membantu Anda mengkonfigurasi daemon mailer seperti yang diinginkan.
John T
Di ubuntu 16.4., Saya punya /etc/mail.rcyang tidak terkait dengansendmail
Timo
12

less +G /var/spool/mail/root

menunjukkan email terbaru, pada akhirnya jika file.

Menunjukkan file surat secara langsung adalah ide yang bagus, tetapi menggunakan catbisa dengan mudah salah. Anda tidak ingin semua surat masuk, jika ada banyak pesan, atau pesan yang sangat panjang di dalam file. Saya hanya melihat satu dengan 150MB, dua juta baris.

Jika Anda tidak root:

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

The +Gopsi digunakan untuk menampilkan pesan terbaru pertama; Itu bukan di bagian atas file, tetapi di akhir.

Ini adalah opsi less, membuatnya menampilkan halaman terakhir file setelah memulai. Itu menunjukkan pesan terakhir (terbaru), jika cocok untuk satu halaman, atau akhir yang sebaliknya.

Nama file mungkin /var/spool/mail/mailbukan/var/spool/mail/root

Volker Siegel
sumber
//, kerusakan luar biasa. Jawaban ini akan sangat berguna bagi orang-orang yang tidak mudah tahu apa yang harus dilakukan dengan file tersebut.
Nathan Basanese
4
Jika ada orang lain yang bertanya-tanya, +G"menyebabkan lebih sedikit untuk awalnya menampilkan setiap file mulai dari akhir daripada awal." ( linux.die.net/man/1/less )
Sam