Bagaimana cara mengirim email dari Terminal?

169

Saya tahu ada cara untuk mengirim email dari terminal di Linux / MacOS, tapi sepertinya saya tidak dapat menemukan dokumentasi yang tepat tentang cara melakukannya.

Pada dasarnya saya membutuhkannya untuk skrip bash saya yang memberi tahu saya setiap kali ada perubahan dalam file.

NoobDev4iPhone
sumber
3
Mungkin harus dicatat di sini bahwa beberapa host dan ISP "mematikan" kemampuan bagi Anda untuk mengirim email. Saya kira itu adalah upaya untuk menghentikan spamming dan phising orang melalui mereka
Jim Jeffries
@ JimJeffries Yang mana? Saya menggunakan server web Amazon EC2.
ckjbgames

Jawaban:

125

Pergilah ke Terminal dan ketik man mailbantuan.

Anda perlu mengatur SMTP:

http://hints.macworld.com/article.php?story=20081217161612647

Lihat juga:

http://www.mactricksandtips.com/2008/09/send-mail-over-your-network.html

Misalnya:

mail -s "hello" "[email protected]" <<EOF
hello
world
EOF

Ini akan mengirim email ke [email protected]dengan subjek hellodan pesan

Halo

Dunia

gadgetmo
sumber
Saya baru saja mencoba, dan itu berhasil untuk saya, tetapi saya memiliki dua pertanyaan karena keingintahuan saya. Apa artinya << online, saya telah melihat beberapa contoh dengan '<' atau '<<. 'Untuk apa itu digunakan? Dan mengapa Anda memberikan End Of File di sana dan di akhir pesan?
Jauh
"<< EOF" dan "EOF" menandai "dokumen-sini". Teks di antara kedua EOF diperlakukan sebagai string yang dikutip multiline. Ini dijelaskan dalam 'man bash'
Joe Inwap
134
echo "this is the body" | mail -s "this is the subject" "to@address"
earldouglas
sumber
20
Perhatikan bahwa semua solusi ini menganggap Anda memiliki MTA yang terpasang secara lokal
Miquel
11
@Buat poin bagus. Di Ubuntu, Anda bisa mendapatkan prasyarat melalui sudo apt-get install mailutils.
earldouglas
3
@ James, Ini tidak berfungsi untuk MAC saya (((Bisakah Anda membantu saya?
neo
1
Tutorial langkah demi langkah: rianjs.net/2013/08/...
Dušan Maďar
Aneh. Ini memberi saya pesan "SyntaxError: invalid syntax" walaupun satu-satunya perubahan yang saya lakukan adalah mengubah alamat.
Jewenile
41

Jika yang Anda butuhkan adalah baris subjek (seperti dalam pesan peringatan) cukup lakukan:

mailx -s "This is all she wrote" < /dev/null "myself@myaddress"
JRFerguson
sumber
Anda mungkin perlu menginstal mailutils. Ini dapat diinstal melalui manajer paket (mis. apt install mailutils)
Jeevan Takhar
31

Mungkin cara paling sederhana adalah menggunakan curlini, tidak perlu menginstal paket tambahan dan dapat dikonfigurasi secara langsung dalam permintaan.

Berikut ini adalah contoh menggunakan server smtp gmail:

curl --url 'smtps://smtp.gmail.com:465' --ssl-reqd \
  --mail-from '[email protected]' \
  --mail-rcpt '[email protected]' \
  --user '[email protected]:YourPassword' \
  -T <(echo -e 'From: [email protected]\nTo: [email protected]\nSubject: Curl Test\n\nHello')
Aliaksandr Sushkevich
sumber
Ini adalah opsi yang sangat bagus. Anda dapat membuat kata sandi khusus aplikasi untuk akun Google Anda dan ini hanya mengirimkan email dari akun Anda sendiri. Sangat keren!
dakdad
2
Jawaban yang bagus, Terakhir, jangan lupa nyalakan aplikasi yang kurang aman untuk membuat pekerjaan myaccount.google.com/lesssecureapps
yubaraj poudel
@aliaksandr harus menambahkan poin terakhir ini ke jawabannya. Secara default, opsi ini (memberikan akses ke aplikasi yang kurang aman) dinonaktifkan dan tidak terbukti. Setidaknya jika Anda menggunakan akun gmail sebagai email pengirim.
EAmez
18

Jika Anda ingin melampirkan file di Linux

echo 'mail content' | mailx -s 'email subject' -a attachment.txt username@stackoverflow.com
MiaeKim
sumber
4
Ini memberi invalid headerpesan untuk file terlampir saya. Pilihan yang benar adalah huruf besar -A.
Stephane
3
@Stephane Menurut patrick-haugh, -a adalah saklar lampiran. -A adalah untuk perintah akun. Lihat halaman manual: linux.die.net/man/1/mailx
MiaeKim
10

di terminal di mac os atau os linux ketik kode ini

mail -s (subject) (receiversEmailAddress)  <<< "how are you?"

untuk contoh coba ini

mail -s "hi" abc@example.com <<< "how are you?"<br>
Pramodya Abeysinghe
sumber