我使用的是.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]
:
}
但正如你猜测的那样,如果&#39; A&#39;声明成功处理邮件我不想继续使用列表中的其他服务器。
答案 0 :(得分:0)
只需await
这样的异步任务:
foreach (var oneSmtpServerInfo in FallbackSmtpServers)
{
:
await smtp.SendMailAsync(msg);
:
}