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.


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" "example@example.com" <<EOF
hello
world
EOF

Ini akan mengirim email ke example@example.comdengan subjek hellodan pesan

Halo

Dunia


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"

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"

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 'from-email@gmail.com' \
  --mail-rcpt 'to-email@gmail.com' \
  --user 'from-email@gmail.com:YourPassword' \
  -T <(echo -e 'From: from-email@gmail.com\nTo: to-email@gmail.com\nSubject: Curl Test\n\nHello')

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

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>

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.