我正在使用procmail来保存电子邮件正文,如下所示:
:0: tmpProcmail.lock
* ^From:.*(SOME EMAIL).*
* ^Subject: SOME SUBJECT.*
| cat > /SOME DIRECTORY/$(date +\%Y\%m\%d).txt
我想知道我是否可以将整个主题用作我的文件名而不是日期。
答案 0 :(得分:0)
这并不是一个特别好的主意,但这并不难。只需使用\/
捕获令牌即可将匹配的文本转换为$MATCH
。
:0:
* ^From:.*(SOME EMAIL)
* ^Subject: \/SOME SUBJECT.*
| cat > "/SOME DIRECTORY/$MATCH.txt"
你说你拯救了身体,但你的食谱并没有这样做;它保存了整个消息。 (如果只想要文件中的正文,请添加b
标记。)
还要注意我是如何省略命名锁定文件的(让procmail在这种情况下找出一个锁定文件名更有效......虽然如果你覆盖文件,锁定可能并不重要)和.*
正则表达式中的冗余From:
。 (它在主题中不是多余的,因为你想捕获整个标题。)
如果Subject包含斜杠并且磁盘上没有相应的目录名,那么这当然会失败。
如果您不想覆盖,则默认为追加,因此不需要cat
。
:0:
* ^From:.*(SOME EMAIL)
* ^Subject: \/SOME SUBJECT.*
/SOME DIRECTORY/$MATCH.txt