我在.net 4.5中有一個C#wcf Windows服務,每天向大約1000個不同的客戶發送電子郵件。我想嘗試使用我在這裏找到的這段代碼發送電子郵件異步,但我應該如何包裝它以捕捉異常?如何在SendMailAsync方法中捕獲異常
public async Task SendAsync(string subject, string body, string recipient)
{
var mailMessage = new MailMessage("[email protected]", recipient, subject, body);
mailMessage.IsBodyHtml = true;
using(var client = new SmtpClient("mysmtpserver"))
{
try
{
await client.SendMailAsync(mailMessage);
}
catch (Exception ex)
{
// Log here
}
}
}
我在等待無效的電子郵件地址和服務器超時。
我是否應該在嘗試抓包中等待呼叫?不知道這會工作。
另外哪裏是放置通過所有郵件地址的foreach循環的最佳位置?
謝謝。
超時是難免的,但無效的電子郵件應之前發送郵件進行檢查。不要依賴正常執行流程的異常。 –
取決於您想要的控制流程。你希望它在第一次失敗時終止嗎? – Aron
只要登錄異常並轉到下一個收件人即可。 –