我有一个网站,需要发送有关特定操作的电子邮件。
var mail = new MailMessage("donotreply@mycompany.com",
"myself@mycompany.com", "Generic Subject Title",
string.Format("Some body content");
using (var eServer = new SmtpClient("mailsrv.mycompany.com"))
{
eServer.Send(mail);
}
上面的代码工作正常,虽然发送功能需要8-15秒才能完成,然后几秒钟后我会收到电子邮件。我想至少删除页面响应的延迟。
using (var eServer = new SmtpClient("mailsrv.mycompany.com"))
{
eServer.SendMailAsync(mail);
}
使用上述内容时,我的页面会快速加载并完成所有其他进程,但我从未收到过该电子邮件。
有没有人知道为什么我不会因为我使用Async版本而收到电子邮件?
答案 0 :(得分:1)
由于使用了阻止,您可以在有可能实际发送邮件之前处置'eServer'变量。如果您使用SendMailAsync,则不应在之后直接部署SmtpClient。