使用异步时发送电子邮件的未知失败

本文关键字:电子邮件 未知 失败 异步 | 更新日期: 2023-09-27 18:24:01

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

        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);
        }

当使用上面的页面时,我的页面加载很快,并完成了所有其他过程,但我从未收到电子邮件。

有人知道为什么仅仅因为我使用异步版本就不会收到电子邮件吗?

使用异步时发送电子邮件的未知失败

由于使用块,您在'eServer'变量有机会实际发送邮件之前就将其处理掉。如果使用SendMailAsync,则不应在之后直接处置SmtpClient。