ActionMailer.net/ActionMailerNext - 如何确认电子邮件是否已发送?

ActionMailer.net/ActionMailerNext - how to confirm if an eMail has even been sent?

ActionMailerNext 一起工作,它是现已死亡的 ActionMailer.net 的一个分支,但我终究无法弄清楚如何确定电子邮件是否已发送,或者是否发生阻止电子邮件发送的错误。

这两个站点都没有提供有关如何执行此操作的任何想法。两个小时的谷歌搜索同样富有成效(不是!)。

通常,通过数据库更新之类的操作,我可以执行

if((await _db.SaveChangesAsync()) > 0){ ... }

并能够在更新是的和未失败的部分之间分叉代码。我需要能够使用 ActionMailerNext 执行此操作,但我不知道如何操作。

实际.Deliver()returns一个

System.Collections.Generic.IList<ActionMailerNext.Interfaces.IMailResponse>

但我不知道如何打开它,因为我不知道里面装的是什么。 google IMailResponse 的任何尝试都不会给我带来任何用处。


编辑:

对于那些想知道的人,返回的集合包含两个变量:一个字符串 Email 和一个名为 DeliveryStatus 的枚举,它为发送的每封电子邮件提供四种响应之一:DELIVERED、INVALID、QUEUED 和 REJECTED .执行以下操作,即使只发送了一封电子邮件(因为我的需求很简单):

if(e.All(x => x.DeliveryStatus == DeliveryStatus.DELIVERED)) {
  // Do if ALL eMails were sent
} else {
  // Fallback if ANY eMail was not sent
}

如果一封或多封电子邮件发送失败,我能够确保存在回退。

不过请记住:这仅适用于将电子邮件发送到外发 SMTP 服务器;系统不知道之后会发生什么。

感谢下面的@ADyson 为我睡眠不足的大脑正常运作所需要的戳戳。

对于那些想知道的人,返回的集合包含两个变量:一个字符串 Email 和一个名为 DeliveryStatus 的枚举,它为发送的每封电子邮件提供四种响应之一:DELIVERED、INVALID、QUEUED 和 REJECTED .执行以下操作,即使只发送了一封电子邮件(因为我的需求很简单):

if(e.All(x => x.DeliveryStatus == DeliveryStatus.DELIVERED)) {
  // Do if ALL eMails were sent
} else {
  // Fallback if ANY eMail was not sent
}

如果一封或多封电子邮件发送失败,我能够确保存在回退。

不过请记住:这仅适用于将电子邮件发送到外发 SMTP 服务器;系统不知道之后会发生什么。

感谢@ADyson 为我睡眠不足的大脑正常运作所需要的戳戳。