web-dev-qa-db-ja.com

Procmailのフィルタリング元と本文

スクリプトで生成された電子メールが1時間ごとに届きます。特定の条件下を除いて表示する必要はないので、独自のメールボックスにフィルター処理するだけです。メッセージはcronから送信されます。他のcronメッセージを除外しないように注意したいと思います。これは、ソースとコンテンツに基づいたものだけです。

私が一致させようとしている本文行(メッセージの最初の行はそれで始まります)は次のとおりです。

/etc/cron.hourly/scriptrun:

これが私が思いついたもので、機能していません。どこが間違っていたのかわかりません。

:0 HB
* ^From:.*[email protected]
* ^Subject: {Cron
* \/etc\/cron.hourly\/scriptrun
.Save/

どんなアイデアでも大歓迎です。

2
David

単一の左ブレースを何に一致させるかは明確ではありません。現在のように、それは構文エラーです。文字通り一致させたいだけだと思います。

:0
* ^From:.*root@ns1\.domain\.net
* ^Subject: \{Cron
* B ?? ^^/etc/cron\.hourly/scriptrun
.Save/

正規表現のメタ文字と文字通り一致するバックスラッシュに気付くでしょう(ただし、スラッシュはメタ文字ではないため、バックスラッシュは使用しません。実際には、\/はProcmailで特別な意味を持ち、一致しませんリテラルスラッシュと一致します!)、およびB ??体に対して1つの条件だけを一致させる。ダブルアンカー^^は、最初の行の最初の文字の前(および最後の行の最後の文字の後)に一致するProcmail構造です。

また、電子メールクライアントに表示される内容は、Procmailが処理する生のメッセージとはかなり異なる可能性があることにも注意してください。たとえば、マルチパートMIMEメッセージでは、最初の本文部分の最初の行の前にMIMEプリアンブルとMIME境界があります。単純なCronメッセージの場合、これが問題になる可能性は低いですが、念のために言及します。

0
tripleee