cmdlineでprocmailを実行し、.emlファイルを入力として提供するにはどうすればよいですか?

cmdlineでprocmailを実行し、.emlファイルを入力として提供するにはどうすればよいですか?

受信メールで外部Pythonスクリプトを実行すると、Procmailが失敗します。その後、スクリプトを手動で実行し、procmailと同じパラメータを提供しようとしました。何の問題もなく通過したので、procmailがスクリプトに問題がある理由を見つけようとしています。 cmdlineでprocmailを実行し、電子メールの生データを含む保存された.emlファイルへのパスを提供できますか?他のものを設定する必要がある場合は、権限が正しくない可能性があります。しかし、Pythonスクリプトを手動で確認したのと同じユーザーがprocmailを実行したようです。

答え1

次のコマンドを使用してスクリプトをテストできます。

procmail -m VERBOSE=yes recipe.rc <message.eml

もちろん、レシピファイルおよび/またはサンプルメッセージのファイルパスは絶対パスまたは相対パスです。詳細なロギングが表示されますVERBOSE=yesLOGFILEまたはレシピファイルに他のターゲットを指定していない場合は標準エラーが発生します)。-mレシピが実行されない場合は、配信を避けてください。DEFAULT

レシピが実行され、副作用がある場合、その副作用は依然として存在します。ただし、通常、特定の変数が設定されたときに別の場所で転送が行われるようにコードを配置することで、ライブメールをいっぱいにすることなくデバッグを容易にできます。テストメッセージフォルダ。

.emlProcmailが期待するRFC5322(née 822)形式を参照していても、その価値はうまく標準化されていません。ただし、.emlまったく異なる形式の拡張機能を使用する多くのプログラムがあります。

追加のデバッグのヒントについては、以下を参照してください。http://www.iki.fi/era/mail/procmail-debug.html

関連情報