Asynchronous 我如何知道SmtpClient是否真的发送了电子邮件?
我正在使用.NET 4.5并尝试使用SmtpClient()SendMailAsync方法。当然有很多例子,但很多只是他人代码的转载 基本上,我正在尝试为Identity 2.x使用电子邮件服务,因此该方法具有此签名Asynchronous 我如何知道SmtpClient是否真的发送了电子邮件?,asynchronous,smtp,async-await,smtpclient,asp.net-identity-2,Asynchronous,Smtp,Async Await,Smtpclient,Asp.net Identity 2,我正在使用.NET 4.5并尝试使用SmtpClient()SendMailAsync方法。当然有很多例子,但很多只是他人代码的转载 基本上,我正在尝试为Identity 2.x使用电子邮件服务,因此该方法具有此签名 public async Task SendAsync(IdentityMessage message) { ... } 最终,它将有类似于下一条异步发送邮件的语句: smtp.SendMailAsync(msg); 问题是,我的配置文件中有多个电子邮件服务器,我的想法是,如果
public async Task SendAsync(IdentityMessage message) { ... }
最终,它将有类似于下一条异步发送邮件的语句:
smtp.SendMailAsync(msg);
问题是,我的配置文件中有多个电子邮件服务器,我的想法是,如果其中一个出现故障,系统应该尝试下一个,直到它能够发送邮件为止(我知道不能保证邮件已经到达任何地方)。大概是这样的:
foreach (var oneSmtpServerInfo in FallbackSmtpServers)
{
:
smtp.SendMailAsync(msg); // <--- successful? [A]
:
}
foreach (var oneSmtpServerInfo in FallbackSmtpServers)
{
:
await smtp.SendMailAsync(msg);
:
}
foreach(fallbacksmtpserver中的var oneSmtpServerInfo)
{
:
smtp.SendMailAsync(msg);//只需等待以下异步任务:
foreach (var oneSmtpServerInfo in FallbackSmtpServers)
{
:
smtp.SendMailAsync(msg); // <--- successful? [A]
:
}
foreach (var oneSmtpServerInfo in FallbackSmtpServers)
{
:
await smtp.SendMailAsync(msg);
:
}
只需等待异步任务,如下所示:
foreach (var oneSmtpServerInfo in FallbackSmtpServers)
{
:
smtp.SendMailAsync(msg); // <--- successful? [A]
:
}
foreach (var oneSmtpServerInfo in FallbackSmtpServers)
{
:
await smtp.SendMailAsync(msg);
:
}
唯一可以检查执行是否引发异常的内容。异常将在添加WAIT语句的位置引发。唯一可以检查执行是否引发异常的内容。异常将在添加WAIT语句的位置引发。