kirim email dari terminal linux dalam satu baris [tertutup]

148

Saya tahu ada perintah maildi linux untuk mengirim email melalui baris perintah. Bagaimana saya bisa mengirim email sederhana dengan satu baris dari terminal?

Sebagai contoh:

mail [email protected] [subject] [body]

Dan sudahkah email dikirim tanpa konfirmasi atau konfirmasi kepada pengguna?

Alasannya, saya ingin mengirim pesan singkat melalui email ke diri saya ketika peristiwa tertentu terjadi dalam suatu javaprogram. Idenya adalah bahwa saya akan menggunakan Runtime.getRuntime()... dll untuk mengirim mail commanddari javaprogram saya .

Saya pernah cronmelakukan sesuatu yang serupa di masa lalu, tetapi implementasi saat ini tidak digunakan cron, jadi saya perlu mencoba ini sebagai gantinya.

cHam
sumber
Gunakan bulk mail CLI, alat yang efisien dan kuat untuk mengirim email yang dinamis ke milis dengan hanya satu perintah mudah: bulkmail mail! Lakukan pemasaran email cepat, mini, dan tanpa kerumitan dengan alat kecil namun bertenaga ini 💌 bulkmail.now.sh
Kumar Abhirup

Jawaban:

209

mail dapat mewakili beberapa program di sistem linux. Yang Anda inginkan adalah sendmail atau postfix . Saya merekomendasikan yang terakhir.

Anda dapat menginstalnya melalui manajer paket favorit Anda. Maka Anda harus mengonfigurasinya, dan setelah melakukannya, Anda dapat mengirim email seperti ini:

 echo "My message" | mail -s subject [email protected]

Lihat manual untuk informasi lebih lanjut.

Sejauh mengonfigurasi postfix, ada banyak artikel di internet tentang cara melakukannya. Kecuali Anda berada di server publik dengan domain terdaftar, Anda biasanya ingin meneruskan email ke server SMTP tempat Anda dapat mengirim email.

Untuk gmail, misalnya, ikuti http://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/ atau tutorial serupa lainnya.

PSkocik
sumber
4
Postfix kuat tetapi jika Anda hanya perlu mengirim email coba "ssmtp". Paket ini lebih kecil dan tidak menjalankan daemon seperti postfix. Ini mendukung protokol aman dan bekerja dengan gmail.
oᴉɹǝɥɔ
6
"Program 'mail' saat ini tidak diinstal. Anda dapat menginstalnya dengan mengetik: apt-get install mailutils"
Tom
lebih ringan: paket nullmailerplus bsd-mailx. Cukup untuk sebagian besar stasiun kerja :) Dan sebagai nullmailertermasuk sendmailantarmuka, Anda bahkan mungkin melewatkan bsd-mailxpaket dan menggunakan pendekatan Hengjie .
Izzy
@ oᴉɹǝɥɔ ssmtpsudah usang. Gunakan msmtpsebagai gantinya.
Matt M.
32
echo "Subject: test" | /usr/sbin/sendmail [email protected]

Ini memungkinkan Anda melakukannya dalam satu baris perintah tanpa harus menggema file teks. Jawaban ini dibangun di atas jawaban @ mti2935. Jadi kredit ada di sana.

Hengjie
sumber
2
Hanya untuk menambahkan jawaban untuk subjek dan isi: echo -e "Subject: test \ n \ n Konten tubuh di sini \ n" | sendmail [email protected]
emvidi
13

Anda juga dapat menggunakan sendmail:

/usr/sbin/sendmail [email protected] < /file/to/send
mti2935
sumber
Catatan: Saya memiliki Postfix + S-Nail. Inilah yang bekerja untuk saya. Pertama saya menggunakan jawaban "Rohit Gupta" dan mengunduh utilitas surat, lalu milik Anda dan semuanya berfungsi.
Mohammed Baashar
13

Untuk pengguna Ubuntu: Pertama, Anda perlu menginstal mailutils

sudo apt-get install mailutils

Siapkan server email, jika Anda menggunakan gmail atau smtp. ikuti tautan ini . kemudian gunakan perintah ini untuk mengirim email.

echo "this is a test mail" | mail -s "Subject of mail" [email protected]

Jika Anda menggunakan gmail dan masih ada beberapa kesalahan otentikasi maka Anda perlu mengubah pengaturan gmail:

Aktifkan Access untuk aplikasi yang kurang aman dari sini

Rohit Gupta
sumber
-3

Mengirim Surat Sederhana:

$ mail -s "test message from centos" [email protected]
hello from centos linux command line

Ctrl+ Duntuk menyelesaikan

abhilash
sumber
2
dia bertanya pada perintah online.
Rohit Gupta