0
我有安裝了郵件服務器的Windows Server 2008。對於每一封郵件來說,都會啓動一個C#應用程序,通過一組可選的過濾器來管理郵件,然後決定是否讓它通過。從C#控制檯啓動時,無法讀取spamassassin的返回值
我有alrealdy幾個「自制」過濾器實施,但我想增加一個利用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();
我想知道是否有我的代碼和/ o有問題如果任何人有經驗從C#控制檯應用程序啓動SAWin32?
非常感謝!
將文件名設置爲@「cmd.exe/c C:\ spamassassin.exe」時發生了什麼? ? – 2010-08-16 17:33:37
感謝您的幫助。我改變了文件名,並且拋出了System.ComponenteModel.Win32Exception異常,告訴我文件名無效。 – jdecuyper 2010-08-16 17:44:13