2013-02-02 12 views
5

Chciałbym utworzyć wiadomość o rozmiarze text/plain za pomocą formatowania Markdown i przekształcić ją w komunikat multipart/alternative, gdzie część text/html została wygenerowana ze znacznika. Próbowałem użyć polecenia filtru do filtrowania tego przez program python, który tworzy komunikat, ale wydaje się, że komunikat nie zostanie poprawnie wysłany. Kod jest poniżej (jest to po prostu kod test, aby sprawdzić, czy mogę zrobić multipart/alternative wiadomości w ogóle.Używanie python w mutt do tworzenia wiadomości wieloczęściowych/alternatywnych

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() 

Niestety, mutt, tylko pojawi się treść wiadomości wysłanej do komendy filtra podczas komponowania (nagłówki Gdy już to działa, myślę, że część z oceną nie będzie zbyt trudna,

Odpowiedz

1

Aktualizacja: Ktoś napisał artykuł na temat konfigurowania mutt do używania ze skryptem Pythona. to, hashcash and mutt, artykuł przechodzi przez konfigurację muttrc i podaje przykładowy kod:


Old odpowiedź

Czy to rozwiązać Twój problem?

#!/usr/bin/env python 

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


# create the message 
msg = MIMEMultipart('alternative') 
msg['Subject'] = "My subject" 
msg['From'] = "[email protected]" 
msg['To'] = "[email protected]" 

# Text of the message 
html = """<html> 
      <body> 
      This is <i>HTML</i> 
      </body> 
      </html> 
""" 
text="This is HTML" 

# Create the two parts 
plain = MIMEText(text, 'plain') 
html = MIMEText(html, 'html') 

# Let's add them 
msg.attach(plain) 
msg.attach(html) 

print msg.as_string() 

Zapisujemy i testujemy program.

python test-email.py 

Co daje:

Content-Type: multipart/alternative; 
boundary="===============1440898741276032793==" 
MIME-Version: 1.0 
Subject: My subject 
From: [email protected] 
To: [email protected] 

--===============1440898741276032793== 
Content-Type: text/plain; charset="us-ascii" 
MIME-Version: 1.0 
Content-Transfer-Encoding: 7bit 

This is HTML 
--===============1440898741276032793== 
Content-Type: text/html; charset="us-ascii" 
MIME-Version: 1.0 
Content-Transfer-Encoding: 7bit 

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

--===============1440898741276032793==-- 
+0

mogę uzyskać program do uruchomienia, ale myślę, że moim problemem jest to, że Mutt nie pozwala na filtrowanie wiadomości z nagłówków podczas tworzenia wiadomości. Myślę, że zrobienie tego będzie wymagało zmiany na mutt. –

+0

, więc nie jest to problem z pytonem. Jestem zmieszany. – karlcow

+0

Przypuszczam, że pytanie powinno brzmieć: "w jaki sposób mogę uruchomić ten skrypt w programie mutt tak, aby został wygenerowany komunikat' multipart/alternative' '? –

Powiązane problemy