У меня Windows Server 2008 с установленным почтовым сервером.Для каждого приходящего электронного письма запускается приложение C #, которое пропускает сообщение через набор необязательных фильтров и затем решает, разрешать ли ему его.
Я уже реализовал пару «самодельных» фильтров, но я хотел бы добавить один, чтобы воспользоваться мощью SpamAssassin.Поскольку 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();
Я хотел бы знать, если что-то не так с моим кодом и / или есть ли у кого-нибудь опыт запуска SAWin32 из консольного приложения C #?
Большое спасибо!