メールサーバーがインストールされたWindowsサーバー2008があります。受信する電子メールごとに C# アプリケーションが起動され、一連のオプションのフィルターを介してメッセージをパイプ処理し、通過させるかどうかを決定します。
私はすでにいくつかの「自作」フィルタを実装していますが、SpamAssassin の機能を活用するために 1 つ追加したいと考えています。SA は UNIX ベースなので、そのウィンドウ ポート ( SAWin32 ) を使用しています。コマンド ラインから SpammAssassin を直接起動すると、電子メールが正しく分析されます。
spamassassin.exe -L -e < C:\SPAM.MAI
(-L はローカル テストのみを有効にし、テストされたメッセージがスパムであった場合、-e はゼロ以外の値で終了します)
しかし、C# アプリケーションから起動しようとすると、戻り値が常に 2 であるため (ハム メッセージであっても)、動作しないようです。
Process proc = new Process();
proc.StartInfo.FileName = @"C:\spamassassin.exe";
proc.StartInfo.Arguments = " -L -e < C:\SPAM.MAI";
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
proc.Start();
proc.WaitForExit();
int exitCode = proc.ExitCode;
Console.WriteLine("Exit code: " + exitCode);
proc.Close();
私のコードに何か問題があるかどうか、および/または C# コンソール アプリケーションから SAWin32 を起動した経験があるかどうかを知りたいですか?
どうもありがとう!