使用ActionMailerNext
,这是现在已经死亡的 ActionMailer.net 的分支,我不能在我的生活中找出如何确定是否已发送电子邮件,或者如果发生了阻止发送电子邮件的错误。
两个网站都没有提供有关如何执行此操作的任何信息。两个小时的谷歌搜索同样富有成效(不!)。
通常情况下,通过数据库更新,我可以做一个
if((await _db.SaveChangesAsync()) > 0){ ... }
并且能够在yes-it-updated和no-it-failed部分之间分叉代码。我需要能够使用ActionMailerNext执行此操作,而且我还不知道如何。
实际的.Deliver()
会返回
System.Collections.Generic.IList<ActionMailerNext.Interfaces.IMailResponse>
但是我不知道怎么解压它因为我不知道里面是什么。任何谷歌IMailResponse
的尝试都不会让我回到任何使用状态。
编辑:
对于那些想知道的人,返回的集合包含两个变量:一个字符串Email
和一个名为DeliveryStatus的Enum,它为每个发送的电子邮件提供四个响应之一: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为我的睡眠不足的大脑正常运作所需的捅。
答案 0 :(得分:-1)
对于那些想知道的人,返回的集合包含两个变量:一个字符串Email
和一个名为DeliveryStatus的Enum,它为每个发送的电子邮件提供四个响应之一: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为我的睡眠不足的大脑正常运作所需的捅。