我正在使用 Visual Studio 2010、.NET 4.0,我正在尝试测试 SMTPClient.TimeOut 属性并实际让它抛出 SmtpException。但是,即使我将 TimeOut 属性设置为 1 毫秒,它仍然会发送电子邮件,看起来好像是在 1 毫秒内发送,但我发现有趣的是,当我检查对象时,我可以看到一个名为 timedOut 的私有成员变量设置为true,表明它实际上已超时。
这是我的代码:
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。