SendMailAsync永不返回,仍然发送邮件

Jas*_*Cav 5 c# asp.net email asp.net-core

我正在通过C#发送邮件SmtpClient.SendMailAsync,但出现了一些非常奇怪的行为。

当我拨打SendMailAsync该电子邮件的电话时-每次都会收到。但是,我的申请永不返回。它似乎挂了,await而我对它为什么不回来没有真正的了解。如果我改用using Send,则邮件会立即发送,当然,所有内容都会按我的预期完成。

这是我实际发送电子邮件的来源。

public async Task SendEmailAsync(string toAddress, string subject, string message)
{
    using (var client = new SmtpClient(configuration["Email:Host"], Convert.ToInt32(configuration["Email:Port"])))
    using (var mailMessage = new MailMessage(configuration["Email:FromAddress"], toAddress, subject, message))
    {
        client.Credentials = new NetworkCredential(configuration["Email:Username"], configuration["Email:Password"]);
        client.EnableSsl = true;

        mailMessage.IsBodyHtml = true;

        try
        {
            await client.SendMailAsync(mailMessage);
        }
        catch (SmtpException)
        {
            throw;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

其他可能有用或无效的信息是我正在通过AWS SES发送这些电子邮件。无论我发送到哪个地址,都会发生相同的问题。我的链是异步的,一直到调用堆栈。我在OSX,ASP.NET Core 1上运行。

Jas*_*Cav 0

看来这是一个错误 - 根据评论中与 Federico Dipuma 的讨论,可能是 OSX 上的 Kestrel。解决方法是不异步发送邮件。

除非可以发现更多信息,否则将其标记为答案。