Створення мультипартованих / альтернативних листів у mutt?


4

Я хотів би створити a text/plain повідомлення з використанням форматування Markdown і перетворити його на a multipart/alternative повідомлення, де text/html частина була згенерована з Markdown. Я спробував використовувати команду фільтра для фільтрації через програму python, яка створює повідомлення, але здається, що повідомлення не надсилається належним чином. Код нижче (це просто тестовий код, щоб побачити, чи можу я зробити multipart/alternative взагалі.

import sys
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

html = """<html>
          <body>
          This is <i>HTML</i>
          </body>
          </html>
"""

msgbody = sys.stdin.read()

newmsg = MIMEMultipart("alternative")

plain = MIMEText(msgbody, "plain")
plain["Content-Disposition"] = "inline"

html = MIMEText(html, "html")
html["Content-Disposition"] = "inline"

newmsg.attach(plain)
newmsg.attach(html)

print newmsg.as_string()

На жаль, у mutt, ви отримуєте лише тіло повідомлення, яке надсилається до команди фільтрів, коли ви створюєте (заголовки не включені). Як тільки я отримаю цю роботу, я думаю, що частина зниження не буде занадто важкою.


Я не знаю, якщо це доречно тут: чи намагалися ви 'set edit_headers' у muttrc? Це дозволяє редагувати ціле повідомлення за допомогою улюбленого редактора, включаючи заголовки. З цього моменту це залежить тільки від можливостей вашого редактора, що ви можете зробити з повідомленням.
sparkie

@ sparkie Я сподівався автоматизувати, де я міг би, але я думаю, ви, безумовно, маєте рацію, що я міг би зробити multipart/alternative таким чином.
Chris W.

це просто віддалена ідея, але я думаю, що не може перешкодити вам тимчасово налаштувати "зовнішній редактор" як скрипт python
n611x007

Відповіді:


0

Я б далі прокоментував це питання, але заблокований через репутацію.

Я спробував створити багаточастинні альтернативи в mutt в обгортці-скрипті до мого редактора, як це було запропоновано @ n611x007. Я успішно створив скрипт python, який прийняв створену редактором поштову скриньку, а потім створив нове повідомлення, яке було альтернативним для одного і того ж повідомлення.

Тим не менш, mutt інтерпретував результуючий створений дійсний альтернативний алгоритм rfc2822 як щось, що може бути лише простим тілом, і переформулював mutltipart як дуже складно читаний текст / звичайний компонент mime.

Тому я підозрюю, що генерування мультичастинного mime-повідомлення за допомогою сценаріїв не є реальним через інтерактивний підхід, хоча це, звичайно, можна зробити, явно маніпулюючи корисним навантаженням mime на екрані після створення, де зазвичай можна створювати вкладення тощо. Однак робочий процес не є достатньо гарним для того, що можна робити регулярно.

Альтернативним підходом було б генерувати альтернативну частину як частину передачі, як обгортку до локальної команди sendmail, або як сценарій, який безпосередньо обгортає розмову з smtp / s. Деякі приклади такого підходу https://pypi.python.org/pypi/muttdown/ і http://chrismdp.com/2013/10/using-markdown-to-send-html-email-via-mutt/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.