我要清理一些邮件,以便只用procmail打印他们的身体:
:0: # printing mail with bb in the subject to bbprinter
* ^Subject:.*bb
| lpr -Pbbprinter
我该怎么做?
任何想法 - 帮助欢迎
答案 0 :(得分:1)
你的问题在很多方面都是不明确的。 “干净”是什么意思? “身体”是什么意思?
如果您的意思是,我怎样才能将RFC5322正文而不是标题发送到打印机,这很容易:
:0b
* ^Subject:.*bb
| lpr -Pbbprinter
注意b
之后的:0
标记,它将操作范围限制在正文中。
但是对于MIME,您实际上并不想要RFC5322正文(即最后一个标题行之后的所有内容),而是只需要MIME多部分消息中的一部分。您需要对要提取的部分进行一些分析,但如果您有,那么它仍然很容易:
:0
* ^Subject:.*bb
| parse-out-preferred-mime-body-part | lpr -Pbbprinter
(我们这里不使用:0b
,因为正确的MIME解析器也需要访问顶级RFC5322标头。)
如果“干净”意味着别的东西,或者另外,你必须澄清你的问题,但总的想法是这样的
:0
* ^Subject:.*bb
| cleanupbody | lpr -Pbbprinter
cleanupbody
可以通过“清理”执行你的意思(涂抹诅咒词?修复常见错别字?或多或少同样的事情?)
最后,为了结束,您基本上可以管道到任何复杂的shell脚本(虽然当它跨越多行时,您可能最好将其全部或部分移动到单独的脚本中,也许有自己的测试套件。)
:0
* ^Subject:.*bb
| parse-out-preferred-mime-body-part | \
sed -e 's/grammer/grammar/g' -e 's/seperate/separate/g' \
-e 's/definately/definitely/g' | \
lpr -Pbbprinter