Bagaimana cara mengirim email dengan lampiran dengan postfix dari command-line?

10

Saya baru saja menyiapkan server Ubuntu 10,04 LTS baru pada linode untuk saya sendiri. Ikuti instruksi yang sangat baik di: sini untuk menyelesaikan instalasi beberapa hal dasar termasuk postfix.

Saya mencoba mencari cara untuk mengirim email ke alamat gmail saya dengan lampiran, tetapi tidak dapat menemukan caranya. Sudah dikonfirmasi bahwa email dapat mencapai akun gmail saya.

Pada akhirnya saya harus menggunakan mutt untuk mengirim email dengan lampiran, mungkin SendEmail juga akan baik-baik saja, tetapi saya ingin tahu bagaimana melakukan hal yang sama di postfix dari command-line?

Banyak terima kasih sebelumnya atas pertanyaan bodoh ini.

Michael Mao
sumber

Jawaban:

14

Kenapa harus postfixlangsung? mailx -a,, muttatau mutt -ajuga akan menggunakan sendmailantarmuka - kecuali jika Anda mengonfigurasinya untuk SMTP.

echo "Ini pesan percobaan" | mutt -s Test -a foo.zip - $ USER
echo "Ini pesan percobaan" | mail -s Test -a foo.zip $ USER

(Catatan, dalam bsd-mailx pilihannya adalah -Asebaliknya.)


Bagaimanapun, ini adalah contoh "postfix".

Ganti $USER, jenis konten, dan nama file yang cocok dengan lingkungan Anda. Contoh mengasumsikan Anda mengirim pesan kepada diri sendiri dan memiliki file ZIP foo.zipdi direktori saat ini.

(printf "%s\n" \
    "Subject: test" \
    "To: $USER" \
    "Content-Type: application/zip" \
    "Content-Disposition: attachment; filename=foo.zip" \
    "Content-Transfer-Encoding: base64" \
    "";
 base64 foo.zip) | sendmail "$USER"

(Pembuatan pesan multi-bagian MIME dibiarkan sebagai latihan bagi pembaca.)

pengguna1686
sumber
mail -a foo.ziptidak melampirkan foo.zippesan seperti mutt.
nr.
@ nicolai.rostov: tergantung pada mail, saya kira. Ia melakukannya di pusaka-mailx.
user1686
7

Postfix adalah agen transfer surat (MTA) . Tugasnya adalah menangani pengiriman surat: mengambilnya dan mengirimkannya ke titik berikutnya pada rutenya. Postfix adalah pekerja pos, yang tugasnya mengambil amplop dan (dengan bantuan rekan-rekannya) membawanya ke penerima.

Apa yang Anda minta di sini adalah pekerjaan kesekretariatan: mengumpulkan dokumen untuk dimasukkan ke dalam amplop. Itu bukan pekerjaan Postfix: itu adalah pekerjaan untuk agen pengguna surat (MUA) . Anda dapat menulis MUA mentah yang hanya mengumpulkan potongan-potongan untuk membuat surat dalam beberapa baris shell, seperti yang dilakukan grawity , tetapi Mutt benar-benar alat yang baik untuk tugas ini.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
4

Dari baris perintah, saya suka menggunakan "sendemail", yang di ubuntu / debian dapat diinstal dari baris perintah seperti ini:

apt-get install sendemail

Kemudian Anda bisa mengatakannya untuk menggunakan localhost (Postfix) sebagai MTA.

Sebenarnya saya baru memperhatikan bahwa localhost: 25 adalah default:

-s SERVER[:PORT]          smtp mail relay, default is localhost:25

Anda kemudian menambahkan lampiran menggunakan flag -a:

sendemail -f [email protected] -t [email protected] -m "This is the message" -u "This is the subject" -a file1.zip file2.zip
Docunext
sumber
1

mailx 12.4 memiliki opsi untuk melampirkan file:

-a file
    Lampirkan file yang diberikan ke pesan.

Sebagai contoh:

[gawad @ centos Desktop] $ mail -s "pine" -a pine.rpm.gz root @ localhost Enter
ini adalah perangkat lunak pine yang Anda minta Enter
.Enter
EOT
[gawad @ centos Desktop] $ 
pengguna228560
sumber