Membuat email multi bagian dan mengirimkannya ke Linux


12

Kami menggunakan mutt untuk mengirim email.

mutt -s "Test" -e "Content-Type: text/html" test@example.com < 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

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 <news@example.com>
Kepada: Pengguna Joe <joe.u@example.net>
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 joe.u@example.net)


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>sender@source.com</from>
  <to>recipient1@destination1.com</to>
  <to>recipient2@destination2.com</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>

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
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.