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 为我睡眠不足的大脑正常运作所需要的戳戳。
与 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 为我睡眠不足的大脑正常运作所需要的戳戳。