我使用的是Visual Studio 2010,.NET 4.0,我試圖測試SMTPClient.TimeOut屬性,並且實際上讓它拋出一個SmtpException。但是,即使將TimeOut屬性設置爲1毫秒,它仍會發送電子郵件,好像在毫秒內發送,但我覺得有趣的是,當我檢查對象時,可以看到名爲timedOut的私有成員變量設置爲這表示它實際超時。無法測試SmtpClient.TimeOut
這裏是我的代碼:
try
{
MailMessage emailMsg = new MailMessage(this.EmailFrom, this.EmailTo, this.EmailSubject, msg);
//SmtpClient emailClient = new SmtpClient(this.EmailServer);
SmtpClient emailClient = new SmtpClient();
emailClient.Credentials = new System.Net.NetworkCredential("username", "password");
emailMsg.IsBodyHtml = true;
emailClient.Timeout = Properties.Settings.Default.SMTPTimeOut;
emailClient.Timeout = 1;
emailClient.Send(emailMsg);
sendingEmail = true;
return sendingEmail;
}
catch (Exception ex)
{
// Handle time out exception here.
}
有沒有人見過這樣或知道一個更好的方法來測試呢?現在我正在打gmail的smtp。
這證明了什麼?沒有電子郵件被髮送......因爲你不發送電子郵件?真正的服務器_does_發送郵件,所以發生的不是你想要的。 – CodeCaster
它證明與服務器建立了連接,並且服務器不回覆,出現超時異常並且未發送電子郵件,這正是我想要測試的內容。 – Flea