Apakah mungkin untuk mengirim lampiran melalui email dari baris perintah?
Jika memungkinkan, saya ingin sesuatu yang sederhana:
mail -a myfile.txt -t me@example.com -s "Here's my file"
Apakah mungkin untuk mengirim lampiran melalui email dari baris perintah?
Jika memungkinkan, saya ingin sesuatu yang sederhana:
mail -a myfile.txt -t me@example.com -s "Here's my file"
Jawaban:
Dari semua agen pengguna e-mail di repositori Ubuntu, tampaknya mutt adalah MUA baris perintah yang diberkati dengan Dukungan Jangka Panjang.
Menurut manual , Anda dapat melakukan sesuatu persis seperti:
mutt -a myfile.txt -s "Here's my file" -- me@example.com
kecuali itu tidak akan pergi ke mana-mana karena orang juga membutuhkan Agen Transfer Surat. Yang populer adalah:
dan satu-satunya yang sepertinya didukung Canonical adalah postfix (terima kasih atas koreksi Steve) dan exim4 .
Orang juga bisa mengatakan bahwa xdg-email juga merupakan Ubuntu MUA yang tepat, tetapi itu adalah front-end yang hanya menjalankan MUA pilihan Anda atas nama Anda.
Jika Anda ingin saran tentang MTA mana yang cocok untuk Anda gunakan, mungkin buka pertanyaan lain di sini.
mutt
perintah contoh berfungsi seperti yang diiklankan. Secara kebetulan, nullmailer memiliki front-end sendmail palsu sehingga sebagian besar program yang berharap untuk berbicara dengan sendmail akan dikirim ke MTA nyata tanpa upaya dari saya.
Saya juga mengalami masalah dengan mengirim file lampiran. Ketika saya mengirim email tanpa lampiran, itu berhasil tetapi tidak dengan lampiran. Masalah ini adalah ada dengan sendemail
, mutt
, mail
, mailx
, uuencode
perintah.
Untungnya, itu diselesaikan dengan lucu. Saya menggunakan Gmail untuk mengirim email. Anda dapat mengonfigurasi gmail Anda untuk mengirim email melalui perintah di terminal sebagaimana dinyatakan di http://www.linuxandlife.com/2013/01/send-email-from-linux-terminal.html .
Anda dapat mengirim email teks menggunakan:
mail -s "hello" RECEIVE@mail.com < /home/masoud/YOURFILE.txt
tetapi Anda tidak dapat mengirim file yang sama dengan lampiran seperti di bawah ini:
mail -s "hello" RECEIVE@mail.com -a /home/masoud/YOURFILE.txt
atau:
mail -s "hello" -a /home/masoud/YOURFILE.txt RECEIVE@mail.com
Akhirnya, saya mengerti bahwa hanya format ini yang dapat mengirim lampiran:
echo "your message here" | mail -s "title" -a /home/masoud/YOURFILE.txt RECEIVE@mail.com
Lucunya, perbedaannya adalah keberadaan perintah "echo".
Tampaknya -a
opsi telah diubah dengan Huruf besar -A
untuk lampiran sekarang. The -a
tampaknya untuk mengubah header yang sesuai dengan doc
.zshrc
file saya ke seseorang dan meskipun saya menggunakan mail
banyak untuk mengirim pesan cepat, mencoba mengirim lampiran tidak berfungsi. Saya hanya perlu konfirmasi bahwa mungkin untuk menyadari bahwa urutan argumen sangat penting. Ini bekerja untuk saya: mail -s "zshrc" -a ~/.zshrc username@example.com
... tentu saja saya masih harus mengetikkan badan pesan dan menekan ctrl+d
baris kosong terakhir.
mail username@example.com -a ~/.zshrc
"berhasil" karena mengirim pesan tetapi tidak mengirim file. Seandainya saya mencobanya mail username@example.com -a ~/.zshrc -s 'zshrc'
, sudah jelas bahwa params setelah alamat penerima diabaikan.
Anda mungkin ingin mengirim file dari shell , tetapi sebaliknya gunakan Thunderbird .
Dalam hal ini, coba thunderbird -remote ...
berguna - dengan asumsi thunderbird biasanya berjalan:
Perintah membuka jendela tulis surat dari instance thunderbird yang sedang berjalan.
Alamat "Dari" adalah alamat default Anda yang dikonfigurasi dalam thunderbird.
Juga, pengaturan akun yang ada digunakan, tidak ada pengaturan terpisah yang diperlukan.
Untuk surel yang dituju you@example.com
, dengan subjek "S", badan "B", dan lampiran /some/absolute/file.txt
, perintahnya adalah
thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='you@example.com',body='B',attachment='/some/absolute/file.txt')"
Ada dua masalah:
File terlampir perlu diberikan oleh jalur absolut , yang membosankan dalam praktiknya. Itu bisa ditangani dengan menggunakan readlink -f
untuk menyelesaikan jalur relatif:
thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='you@example.com',body='B',attachment='$(readlink -f file.txt)')"
Juga, perintahnya adalah panjang. Gunakan skrip shell atau fungsi shell, dengan empat argumen:
thunderbird-compose () {
thunderbird -remote "xfeDoCommand(composeMessage,subject='$1',to='$2',body='$3',attachment='$(readlink -f $4)')"
}
Dengan fungsi ini, perintah menjadi dapat dibaca:
thunderbird-compose 'Some Subject' test@example.com 'Body of message' file1
akan membuka jendela "Tulis" thunderbird dengan lampiran , dan Dari, Ke, Subjek, dan isi teks isi. Ini dapat diedit sebelum mengirimnya.
heirloom-mailx
Paket di debian menyediakan mailx
perintah untuk mengirim lampiran pantomim dengan mudah. berikut ini bekerja untuk saya;
mailx -a attachment.zip -s subject rctp@domain.to
mail
dan mailx
disertakan dengan RH-alikes memiliki -a
untuk lampiran file, tapi yang termasuk dalam Debian-alikes tidak.
Saya ingin menambahkan jawaban lain yang digunakan untuk menambahkan teks isi bersama dengan lampiran. Tepuk tangan!!
echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- recipient@domain.com
mail
(aliasmailx
) adalah MIME bodoh karena itu tidak dapat menangani lampiran dengan cara apa pun yang bukan 1980-an. Ini adalah pertanyaan yang bagus, saya mencari Kanon Kanonik kanonik; akan datang lebih banyak lagi.