スクリプトへのパイプの正しい構文は次のとおりです。
:0 # no lock file
* ^To:.*@barrett\.com
| /usr/local/bin/php-5.2 -f $HOME/ticket/emailcustcheck.php # no quotes, use pipe
アクションは!
電子メール アドレスに転送しようとしますが、もちろん、PHP インタープリターへのパスを含む長い引用符で囲まれた文字列は、有効な電子メール アドレスではありません。
ロックが必要な場合 (つまり、この PHP スクリプトの 2 つのインスタンスを同時に実行できない場合)、ロック ファイルに名前を付ける必要があります。Procmail はここでロック ファイル名を推測できません。そのため、ロック アクションはとにかくエラー メッセージを生成するだけです。よくわからない場合は、名前付きロック ファイルを追加する方が安全ですが、同時実行性の問題 (他のプロセスがデータベースを使用していないときにスクリプトがデータベースに書き込む必要があるなど) がない場合は、必要ありません。 、処理が遅くなる可能性があります。
Cc
条件の正規表現もやや不正確に見えますが、直接だけでなくメールでもトリガーしたいかもしれないと推測することしかできませんTo:
。^TO_
その場合は、ドキュメントでマクロを調べてください。
スクリプトはメッセージを標準入力として取得します。おそらくすべての入力行を配列に読み込むか、2 つの配列に分割して、最初の空の行より前のすべてが「ヘッダー」配列に入り、残りが「本体」配列に入るようにする必要があります。または、PHP には、電子メール メッセージを標準入力からオブジェクトに読み込むことができるクラスがいくつかあるかもしれません。