我有一個C#服務檢查程序。該exe文件從bat文件中跳出,該文件還傳遞了許多參數(例如,您想要檢查多少服務的int計數,服務顯示名稱的字符串)以及emailTo,emailFrom,emailServer等,如同服務未運行,將發送電子郵件。這是電子郵件的部分代碼:在服務器上運行程序時發生郵件異常?
MailMessage mail = new MailMessage(emailFrom, emailTo);
SmtpClient SMTP = new SmtpClient(emailServer);
if (emailUser != "")
{
SMTP.Credentials = new NetworkCredential(emailUser, emailPass);
}
mail.Subject = "The " + service + " service has stopped running";
mail.Body = "Please take a look into the " +
service + " service and think about restarting.";
SMTP.Send(mail);
因此一臺服務器上我使用emailserver的爲「localhost」的傳入,在bat文件,並在運行時如果我檢查服務沒有那麼運行電子郵件發送正常,一切正常。然而,在另一臺服務器上,我再次使用「localhost」作爲我的emailServer,但是當我運行bat文件時。我收到一個錯誤System.Net.Mail.Smtp.Exception [8012],並且不發送電子郵件。這是不是在服務器上設置的東西,而不是造成我的問題的程序(服務器配置不是我強大的領域)。
謝謝。
在你的函數中使用'try ... catch(Exception ex)',並向我們顯示'ex.Message'請...... – Marco
服務帳號是否有權訪問smtp服務器? – KMan