使用异步时未知无法发送电子邮件

时间:2014-09-22 20:03:20

标签: c# asp.net-mvc email

我有一个网站,需要发送有关特定操作的电子邮件。

        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版本而收到电子邮件?

1 个答案:

答案 0 :(得分:1)

由于使用了阻止,您可以在有可能实际发送邮件之前处置'eServer'变量。如果您使用SendMailAsync,则不应在之后直接部署SmtpClient。