如何使用 procmail 保存以电子邮件主题为文件名的电子邮件正文?
How to use procmail to save email body with email subject as the filename?
我正在使用 procmail 保存电子邮件正文,如下所示:
:0: tmpProcmail.lock
* ^From:.*(SOME EMAIL).*
* ^Subject: SOME SUBJECT.*
| cat > /SOME DIRECTORY/$(date +\%Y\%m\%d).txt
我想知道我是否可以使用整个主题作为我的文件名而不是日期。
我觉得这不是一个特别好的主意,但做起来并不难。只需使用 \/
捕获标记将匹配的文本放入 $MATCH
.
:0:
* ^From:.*(SOME EMAIL)
* ^Subject: \/SOME SUBJECT.*
| cat > "/SOME DIRECTORY/$MATCH.txt"
你说你保存了 body,但你的食谱并没有这样做;它保存了整个消息。 (如果文件中只需要 body,请添加 b
标志。)
另请注意我是如何省略命名锁定文件的(在这种情况下让 Procmail 找出锁定文件名更有效......尽管如果您覆盖文件,锁定可能并不重要)以及 From:
正则表达式中多余的 .*
。 (它在主题中不是多余的,因为您想捕获整个 header。)
如果 Subject 包含一个斜线并且您在磁盘上没有相应的目录名称,这当然会失败。
如果你不想覆盖,默认是追加,所以不需要 cat
或有用。
:0:
* ^From:.*(SOME EMAIL)
* ^Subject: \/SOME SUBJECT.*
/SOME DIRECTORY/$MATCH.txt
我正在使用 procmail 保存电子邮件正文,如下所示:
:0: tmpProcmail.lock
* ^From:.*(SOME EMAIL).*
* ^Subject: SOME SUBJECT.*
| cat > /SOME DIRECTORY/$(date +\%Y\%m\%d).txt
我想知道我是否可以使用整个主题作为我的文件名而不是日期。
我觉得这不是一个特别好的主意,但做起来并不难。只需使用 \/
捕获标记将匹配的文本放入 $MATCH
.
:0:
* ^From:.*(SOME EMAIL)
* ^Subject: \/SOME SUBJECT.*
| cat > "/SOME DIRECTORY/$MATCH.txt"
你说你保存了 body,但你的食谱并没有这样做;它保存了整个消息。 (如果文件中只需要 body,请添加 b
标志。)
另请注意我是如何省略命名锁定文件的(在这种情况下让 Procmail 找出锁定文件名更有效......尽管如果您覆盖文件,锁定可能并不重要)以及 From:
正则表达式中多余的 .*
。 (它在主题中不是多余的,因为您想捕获整个 header。)
如果 Subject 包含一个斜线并且您在磁盘上没有相应的目录名称,这当然会失败。
如果你不想覆盖,默认是追加,所以不需要 cat
或有用。
:0:
* ^From:.*(SOME EMAIL)
* ^Subject: \/SOME SUBJECT.*
/SOME DIRECTORY/$MATCH.txt