gpt4 book ai didi

c# - SendMailAsync 从不返回,仍然发送邮件

转载 作者:太空狗 更新时间:2023-10-29 23:49:56 24 4
gpt4 key购买 nike

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

当我调用 SendMailAsync 时,电子邮件已发送 - 我每次都会收到。但是,我的申请永远不会返回。它似乎卡在 await 上,我对它不返回的原因没有任何真正的了解。如果我切换到使用 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;
}
}
}

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

最佳答案

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

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

关于c# - SendMailAsync 从不返回,仍然发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37211240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com