Створення багаточастинного електронного листа та відправлення його в Linux


12

Ми використовуємо mutt для надсилання електронних листів.

mutt -s "Test" -e "Content-Type: text/html" test@example.com < message.html

Ми надсилаємо наші оновлення електронною поштою у форматі HTML. Ми хотіли б надсилати електронні листи як багатоскладові, що містять як текстову версію, так і HTML-версію.

  1. Як ми можемо створити таке багаточастинне повідомлення в Linux, коли надано тему електронної пошти та HTML та текстові версії тіла електронної пошти?
  2. Чи можемо ми використовувати mutt для надсилання багаточастинного електронного листа, створеного на кроці 1, із запиту linux?

Навколишнє середовище: RedHat Enterprise Linux 5, mutt

Відповіді:


10

Як ми можемо створити таке багаточастинне повідомлення в Linux, коли надано тему електронної пошти та HTML та текстові версії тіла електронної пошти?

Створіть тип типу, multipart/alternativeяк це зафіксовано в RFC 2046 :

Від: Приклад компанії <news@example.com>
Для: Joe User <joe.u@example.net>
Дата: сб, 21 травня 2011 17:40:11 +0300
Тема: Приклад повідомлення з кількома частинами
MIME-версія: 1.0
Тип вмісту: багаточастинні / альтернативні; межа = asdfghjkl

--asdfghjkl
Тип вмісту: текст / звичайний; charset = utf-8

Привіт усім!

--asdfghjkl
Тип вмісту: текст / html; charset = utf-8

<! DOCTYPE html>
<ніхто>
<p> Привіт усім! </p>
</body>

--asdfghjkl--

Точний синтаксис див. У RFC 2046 та RFC 5322 .

Чи можемо ми використовувати mutt для надсилання багаточастинного електронного листа, створеного на кроці 1, із запиту linux?

Якщо ви знайдете спосіб встановити правильний заголовок Content-Type. (У вашому прикладі ви використовуєте -e, але mutt використовує -eдля різних цілей. Навіть -e "my_hdr Content-Type: ..."залишає початковий текст / звичайний заголовок неушкодженим.)

Краще надсилати генеровану пошту безпосередньо через sendmail. Вам потрібно буде створити заголовки самостійно - див. Приклад; використання strftime("%a, %d %b %Y %T %z")для дати та рядка випадкових буквено-цифрових символів для межі. Потім передайте підготовлене повідомлення, включаючи заголовки, на sendmail -i -t:

sendmail -i -t < above-example.txt

( -tОпція означає "отримати одержувачів з рядка" До: "; ви також можете використовувати sendmail -i joe.u@example.net)


Дякую за чудову відповідь, шанобливість! Дякуємо також за те, що докладно пояснили, як скласти багаточастинне повідомлення електронної пошти. :)
користувач544192

0

Погляньте на https://github.com/shivylp/mailprod . Я розробив цю невелику утиліту / бібліотеку Python, оскільки використання командного рядка для великих листів не здавалося надійним варіантом. З mailprodcli це так просто, як сказати mailprodcli template.xml --send. Приклад template.xml, який навіть включає зображення, такий же простий, як:

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

Чи буде також надіслана версія простого тексту? Я вважаю, що ОП хоче надіслати багаточастинне повідомлення електронною поштою, де вміст HTML і непростий текст міститься в одному повідомленні.
cascer1
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.