Membuat email multi bagian dan mengirimkannya ke Linux

12

Kami menggunakan mutt untuk mengirim email.

mutt -s "Test" -e "Content-Type: text/html" [email protected] < message.html

Kami mengirimkan pembaruan email kami dalam format HTML. Kami ingin mengirim email sebagai multi-bagian yang berisi versi teks dan versi html.

  1. Bagaimana kita membuat pesan multi bagian di Linux ketika subjek email, dan versi HTML dan teks dari badan email diberikan?
  2. Bisakah kita menggunakan mutt untuk mengirim email multi bagian yang dibuat di langkah 1, dari prompt linux?

Envirnonment: RedHat Enterprise Linux 5, mutt

pengguna544192
sumber

Jawaban:

10

Bagaimana kita membuat pesan multi bagian di Linux ketika subjek email, dan versi HTML dan teks dari badan email diberikan?

Buat pesan jenis yang multipart/alternativedidokumentasikan dalam RFC 2046 :

Dari: Contoh Perusahaan <[email protected]>
Kepada: Pengguna Joe <[email protected]>
Tanggal: Sabtu, 21 Mei 2011 17:40:11 +0300
Subjek: Contoh pesan multi bagian
MIME-Versi: 1.0
Jenis-Konten: multipart / alternatif; batas = asdfghjkl

--asdfghjkl
Jenis-Konten: teks / polos; charset = utf-8

Halo semuanya!

--asdfghjkl
Jenis-Konten: teks / html; charset = utf-8

<! DOCTYPE html>
<body>
<p> Halo semuanya! </p>
</body>

--asdfghjkl--

Lihat RFC 2046 dan RFC 5322 untuk sintaks yang tepat.

Bisakah kita menggunakan mutt untuk mengirim email multi bagian yang dibuat di langkah 1, dari prompt linux?

Jika Anda menemukan cara untuk mengatur header Tipe Konten yang tepat. (Dalam contoh Anda, Anda menggunakan -e, tetapi mutt menggunakan -euntuk tujuan yang berbeda. Bahkan -e "my_hdr Content-Type: ..."membiarkan teks asli / header biasa.)

Lebih baik mengirim surat yang dihasilkan secara langsung sendmail. Anda harus membuat header sendiri - lihat contohnya; gunakan strftime("%a, %d %b %Y %T %z")untuk Date dan serangkaian karakter alfanumerik acak untuk batas. Kemudian kirimkan pesan yang sudah disiapkan, termasuk tajuk, ke sendmail -i -t:

sendmail -i -t < above-example.txt

( -tOpsi ini berarti "dapatkan penerima dari baris To: "; Anda juga dapat menggunakan sendmail -i [email protected])

pengguna1686
sumber
Terima kasih atas jawaban yang bagus, grawity! Terima kasih juga telah menjelaskan secara terperinci cara membuat email multi bagian. :)
user544192
0

Lihatlah https://github.com/shivylp/mailprod . Saya mengembangkan utilitas / pustaka Python kecil ini karena menggunakan command-line untuk email besar sepertinya bukan pilihan yang bisa diandalkan. Dengan mailprodcli, sesederhana mengatakan mailprodcli template.xml --send. Contoh template.xml yang bahkan menyertakan gambar sesederhana:

<?xml version="1.0" encoding="UTF-8"?>
<mail>
  <from>[email protected]</from>
  <to>[email protected]</to>
  <to>[email protected]</to>
  <body type="text/html">
    <![CDATA[<html>
<b>Neat!</b><br><center><img src="cid:sample"></center>
</html>]]>
  </body>
  <body type="image" src="sample.png" id="sample" />
</mail>
Shivaprasad Bhat
sumber
Apakah ini juga akan mengirim versi plaintext? Saya percaya OP ingin mengirim email multi-bagian tempat konten HTML dan plaintext disertakan dalam pesan yang sama.
cascer1