在 Mutt 中以交互方式发送带有空邮件正文的电子邮件

在 Mutt 中以交互方式发送带有空邮件正文的电子邮件

我使用 Mutt 作为电子邮件客户端,并将 Vim 配置为编辑器。有时,我想发送一封包含空邮件正文的电子邮件(通常发给我自己),例如,邮件包含主题线和附件。

在撰写此类电子邮件时,我输入主题行和收件人地址,然后 Vim 会打开,让我编辑邮件正文。我必须在保存和关闭临时文件之前输入一些空格。如果我直接退出 Vim 而不输入任何文本(使用:q:x命令),我会收到以下错误消息并返回到邮箱文件夹索引。

中止未修改的消息。

我知道我可以使用命令行发送这样的消息:

 echo | mutt -s "Subject Line" -a attachment.zip [email protected]

但是,我希望能够在交互使用 Mutt 时执行此操作。是否有可以设置为允许空消息正文的配置变量?

我查看了 Mutt 网站上的文档,并使用 DuckDuckGo 和 Google 搜索短语“中止未修改的消息”,但所有结果似乎都与未editor正确设置变量的用户有关。

答案1

只需将此行添加到您的.muttrc文件中

set abort_unmodified = no

记录在man muttrc在线手册

如果设置为是的,如果文件没有发生任何更改,则在编辑邮件正文后,撰写将自动中止(此检查仅在第一的文件的编辑)。当设置为,创作将永远不会中止。

答案2

Mutt 在启动 Vim 之前会记录临时邮件正文文件的修改时间,然后在 Vim 退出后再次检查。如果修改时间没有改变,Mutt 就不会发送电子邮件消息并发出Aborted unmodified message

避免这种情况的一个简单方法是在:w关闭 Vim 之前简单地写入空缓冲区。

答案3

您可以$editor在这里利用自己的优势。

首先,编写一个小脚本,查找一些特定内容,表明这应该是一封空正文的电子邮件。例如,您可以将一些特殊字符作为主题字段值的第一个字符。

如果脚本没有检测到该指示器,那么它应该正常启动你的常规编辑器。

如果它检测该指示器,但它应该读取touch消息文件(作为$editor调用中的第一个参数给出)并返回。您可能还想让它删除该指示器,这样如果您点击e编辑,就会得到常规编辑器。

formail它可以与您选择的文本处理器(awk、sed 等)组合在一起。

将 Mutt 设置$editor为调用该脚本而不是vim

相关内容