gpt4 book ai didi

c# - 如何在 SendMailAsync 方法中捕获异常

转载 作者:太空狗 更新时间:2023-10-30 01:02:36 24 4
gpt4 key购买 nike

我在 .net 4.5 中有一个 C# wcf Windows 服务,它每天向大约 1000 个不同的客户发送电子邮件。我想尝试使用我在 SO 上找到的这段代码异步发送电子邮件,但我应该如何包装它以捕获异常?

public async Task SendAsync(string subject, string body, string recipient)
{
var mailMessage = new MailMessage("me@example.com", recipient, subject, body);
mailMessage.IsBodyHtml = true;

using(var client = new SmtpClient("mysmtpserver"))
{
try
{
await client.SendMailAsync(mailMessage);
}
catch (Exception ex)
{
// Log here
}
}
}

我期待无效电子邮件地址和服务器超时的异常。

我应该将 await 调用包装在 try-catch 中吗?不确定这是否有效。

此外,放置遍历所有邮件地址的 foreach 循环的最佳位置在哪里?

谢谢。

最佳答案

Should I just wrap the await Call in a try-catch? Not sure this will work.

是的,await 传播异常,这会起作用。当然,许多邮件投递失败发生在邮件离开您的服务器之后,您会被退回,甚至什么也得不到。无论您如何发送邮件,都无法检测到这一点。

Also where is the best place to put the foreach loop that runs through all mail addresses?

不太清楚你的意思。围绕对 SendAsync 的调用放置循环?它还能去哪里?我可能误解了。

关于c# - 如何在 SendMailAsync 方法中捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33196375/

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