我想text/plain
使用 Markdown 格式建立一條訊息,並將其轉換為multipart/alternative
訊息,其中該text/html
部分是從 Markdown 產生的。我嘗試使用 filter 命令透過建立訊息的 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 中,您在撰寫時只能獲取發送到過濾器命令的訊息正文(不包括標頭)。一旦我開始工作,我認為降價部分不會太難。
答案1
我想進一步評論這個問題,但由於聲譽而被阻止。
我嘗試按照 @n611x007 的建議,在編輯器的包裝腳本中用 mutt 創建多部分替代項。我成功創建了一個 python 腳本,它接受編輯器製作的郵件,然後創建一條新訊息,該訊息是同一訊息的多部分替代。
然而,mutt 將產生的有效多部分替代 rfc2822 郵件解釋為只能是普通正文的內容,並將多部分重新表述為非常難以閱讀的文本/純 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/