在 mutt 中创建多部分/替代邮件?

在 mutt 中创建多部分/替代邮件?

我想text/plain使用 Markdown 格式创建一条消息,并将其转换为部分由 Markdown 生成的multipart/alternative消息text/html。我尝试使用 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 中,您只能在撰写时将消息正文发送到过滤器命令(不包括标题)。一旦我让它工作起来,我想 markdown 部分就不会太难了。

答案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/

相关内容