私は電子メールをMaildirの別のフォルダに転送するためにprocmailを使用しています。 私はこれらの2行を使ってメールからFROMとTOを取得していますが、これはかなりうまく動作します。procmailはchrootされているか、またはlinuxコマンドを使用して制限されていますか?
FROM=`formail -x"From:"`
TO=`formail -x"To:"`
これらの2つのコマンドは、From:とTo:のプレフィックスを付けずに行全体を返します。 >
Firstname Lastname <[email protected]>
は、今私は<との間で電子メールを抽出したい: だから私のような何かを得ます。 私はこのようにFROMとTOの変数を塗ります。
FROM_PARSED=`echo $FROM | grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*'`
TO_PARSED=`echo $TO | grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*'`
しかし、私はLOG = FROM_PARSEDを使用してprocmailのログにFROM_PARSEDを印刷するとき、私はFROM_PARSEDとTO_PARSEDに空の文字列を取得します。
しかし、これらのコマンドを自分のコンソールで実行すると、正常に動作します。私はgrep、egrep、sed、さらには切り取り(<と>)を使って、他の多くのgreppingメソッドを試しました。すべてはコンソールで作業していますが、私はprocmailでそれを使用しているだけで何も返しません。
procmailでgrepコマンドとsedコマンドを使用することはできませんか?何かchrootのようなもの?
私のprocmailログにエラーログはありません。私は、FROMとTOの行から有効な電子メールアドレスを抽出したいだけです。 formailを使って抽出しますが、式が正しい場合でもgrepやsedを使って解析することはできません。
誰かが助けてもらえますか?たぶん私は何とかprocmailをセットアップする必要があります。