Bagaimana cara mengirim email melalui perintah mailx UNIX?

92

Bagaimana cara mengirim email melalui mailxperintah UNIX ?

pengguna269484
sumber

Jawaban:

109

sebuah contoh

$ echo "something" | mailx -s "subject" [email protected]

untuk mengirim lampiran

$ uuencode file file | mailx -s "subject" [email protected]

dan untuk mengirim lampiran DAN menulis badan pesan

$ (echo "something\n" ; uuencode file file) | mailx -s "subject" [email protected]
anjing hantu74
sumber
4
Saya mencobanya tetapi tidak ada tanggapan. Baik itu memberikan beberapa pesan kesalahan atau mengirim email ke [email protected]. Apakah konfigurasi server diperlukan?
pengguna269484
2
tidak diperlukan konfigurasi apa pun. Periksa koneksi internet Anda. Saya memiliki koneksi langsung ke internet melalui kabel, saya tidak menggunakan proxy atau apa pun sehingga berfungsi di pihak saya.
ghostdog74
2
Anda juga harus memeriksa pesan kesalahan di kotak masuk Anda. Yaitu lari mail.
hafichuk
2
Namun, perhatikan bahwa itu uuencodeadalah teknologi warisan dari milenium lampau yang tidak menghasilkan apa yang kita maksud sekarang dengan "kemelekatan". Ini pada dasarnya menempatkan sepotong campur aduk yang dapat dibaca mesin di akhir teks pesan. Di zaman sekarang ini, Anda akan lebih baik dilayani oleh mailer yang peka-MIME dengan baik. Sayangnya, tidak ada mailxpenggantian yang didukung secara universal dengan fitur MIME, tetapi jika Anda punya mutt, itu mungkin jalur yang paling tidak tahan.
tripleee
5
@ user269484 Gmail tidak menerima email dari alamat IP yang tidak sah. Baca support.google.com/mail/answer/10336
34

Ini dia:

echo "Body" | mailx -r "FROM_EMAIL" -s "SUBJECT" "To_EMAIL"

PS. Tubuh dan subjek harus diberi tanda petik ganda. Hapus kutipan dari FROM_EMAILdan To_EMAILsaat mengganti alamat email.

Kamran Ahmad
sumber
1
Di Mac Anda akan menerima pesan kesalahan dari perintah mailx jika Anda menggunakan -r mailx: opsi ilegal - r Penggunaan: mailx [-EiInv] [-s subject] [-c cc-addr] [-b bcc-addr] [ -F] ke-addr ... mailx [-EHiInNv] [-F] -f [nama] mailx [-EHiInNv] [-F] [-u pengguna] mailx -e [-f nama] mailx -H
jcpennypincher
Anda dapat melakukan -S [email protected]
Kalpesh Soni
6
mailx -s "subjec_of_mail" [email protected] < file_name

melalui mailxutilitas kita dapat mengirim file dari unixke mail server. Di sini, di kode di atas kita bisa melihat parameter pertama adalah -s "subject of mail" parameter kedua mail IDdan parameter terakhir adalah nama file yang ingin kita lampirkan

Girdhar Singh Rathore
sumber
1
Ini tidak melampirkan file, ini menempatkan konten file ke dalam tubuh
Guus
5
mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress

-c dan -b adalah opsional.

-s: Tentukan subjek; jika subjek berisi spasi, gunakan tanda kutip.

-c: Kirim salinan karbon ke daftar pengguna yang dipisahkan dengan koma.

-b: Kirim salinan blind carbon ke daftar pengguna yang dipisahkan dengan koma.

Semoga jawaban saya menjelaskan keraguan Anda.

Pavan Kumar
sumber
5

Lebih cepat dengan perintah MUTT

echo "Body Of the Email"  | mutt -a "File_Attachment.csv" -s "Daily Report for $(date)"  -c [email protected] [email protected] -y
  1. -c daftar cc email
  2. -s daftar subjek
  3. -y untuk mengirim surat
pengguna1651561
sumber
Saya harus memisahkan lampiran dengan "-" untuk membuatnya bekerja seperti ini:echo "" | mutt -s "test" -a ./file -- [email protected] -y
subtleseeker
4

Dari halaman manual:

Mengirim surat

Untuk mengirim pesan ke satu atau lebih orang, mailx bisa dipanggil dengan argumen yang merupakan nama orang yang akan dikirimi email. Pengguna kemudian diharapkan untuk mengetikkan pesannya, diikuti dengan 'control-D' di awal baris.

Dengan kata lain, mailx membaca konten yang akan dikirim dari input standar dan dapat dialihkan seperti biasa. Misalnya:

ls -l $HOME | mailx -s "The content of my home directory" [email protected]
hlovdal.dll
sumber
3
echo "Sending emails ..."
NOW=$(date +"%F %H:%M")
echo $NOW  " Running service" >> open_files.log
header=`echo "Service Restarting: " $NOW`


mail -s "$header" [email protected],   \
              [email protected], \ < open_files.log
Piyush Mattoo
sumber
1

Menyesuaikan alamat FROM

MESSAGE="SOME MESSAGE"
SUBJECT="SOME SUBJECT"
TOADDR="[email protected]"
FROM="DONOTREPLY"

echo $MESSAGE | mail  -s "$SUBJECT" $TOADDR  -- -f $FROM
Hari
sumber
Kecuali dari man mail: -f [file] Baca isi mbox pengguna (atau file yang ditentukan) untuk diproses; ketika mailx ditutup, ia menulis pesan yang tidak dihapus kembali ke file ini. File string ditangani seperti yang dijelaskan untuk perintah folder di bawah ini.
ZJ Lyu
Itu tergantung pada versi mana yang Anda gunakan. Ada beberapa persaingan maildan mailxperintah yang tidak kompatibel dengan opsi berbeda.
tripleee
1

Berikut adalah fungsi multifungsi untuk menangani pengiriman surat dengan beberapa lampiran:

enviaremail() {
values=$(echo "$@" | tr -d '\n')
listargs=()
listargs+=($values)
heirloom-mailx $( attachment=""
for (( a = 5; a < ${#listargs[@]}; a++ )); do
attachment=$(echo "-a ${listargs[a]} ")
echo "${attachment}"
done) -v -s "${titulo}" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://$1 \
-S from="${2}" \
-S smtp-auth-user=$3 \
-S smtp-auth-password=$4 \
-S ssl-verify=ignore \
$5 < ${cuerpo}
}

function call: enviaremail "smtp.mailserver: port" "from_address" "authuser" "'pass'" "destination" "daftar lampiran dipisahkan oleh spasi"

Catatan: Hapus tanda kutip ganda dalam panggilan

Selain itu, harap ingat untuk menentukan secara eksternal $ titulo (subjek) dan $ cuerpo (body) email sebelum menggunakan fungsi

Ivo Yordanov
sumber
0

Jika Anda ingin mengirim lebih dari dua orang atau DL:

echo "Message Body" | mailx -s "Message Title" -r [email protected] [email protected],[email protected]

sini:

  • -s = subjek atau judul surat
  • -r = sender mail atau DL
dildeepak.dll
sumber
Bisakah Anda menjelaskan mengapa echo digunakan untuk melewatkan badan pesan? Jika saya menghilangkan ini dan mengeksekusi dari MailX, kursor berkedip seolah-olah menunggu masukan.
LonelyRogue