【发布时间】:2016-06-24 07:08:18
【问题描述】:
我正在使用 .NET 4.5 并尝试使用 SmtpClient() SendMailAsync 方法。当然有很多例子,但很多只是他人代码的转贴。
基本上我正在尝试将电子邮件服务用于 Identity 2.x,因此该方法具有此签名
public async Task SendAsync(IdentityMessage message) { ... }
最终会有类似下一条语句来异步发送邮件:
smtp.SendMailAsync(msg);
问题是,我的配置文件中有多个电子邮件服务器,我的想法是,如果其中一个失败,系统应该尝试下一个,直到它能够发送邮件(我知道不能保证邮件有到达任何地方)。像这样的:
foreach (var oneSmtpServerInfo in FallbackSmtpServers)
{
:
smtp.SendMailAsync(msg); // <--- successful? [A]
:
}
但正如你猜想的那样,如果“A”语句成功处理邮件消息,我不想继续使用列表中的其他服务器。
【问题讨论】:
-
如果执行引发异常,您唯一可以检查的内容。在添加 await 语句的位置会抛出异常。
标签: asynchronous smtp async-await smtpclient asp.net-identity-2