1

鉴于 cfmail 有一个“FAILTO=''”选项,如果电子邮件未送达,则触发将电子邮件发送到该电子邮件...

有没有办法以某种方式为电子邮件分配 ID 或跟踪 #,将其存储在具有该 ID 的数据库中......然后如果它失败则更新该电子邮件的状态?

我想跟踪反弹...最好不要将 FAILTO 发送到 POP3 或 IMAP,然后使用 cfimap 检查它...

有没有其他的方法来处理这个?

也许是在电子邮件失败时触发的事件网关?

更新:我决定采用不同的方法,利用 sendgrid API。我希望这能给我提供比 CF 提供的更多工具。

4

3 回答 3

0

不幸的是,对您的问题的简短回答是否定的。

具有可能解决方案的更长版本:failTo 电子邮件地址填充电子邮件标题中的返回路径,然后邮件服务器“应该”使用它来进行退回(但是请参阅 - http://www.bennadel.com/blog /1899-GMail-Seems-To-Ignore-The-Return-Path-Header-Defined-By-The-CFMail-FailTo-Attribute.htm 的例子,它没有)

因此,您将需要监控 Imap 或 pop 帐户才能查看您的邮件,但是您可以设置一个事件网关来监控这一点,此处提供详细说明 - http://www.alagad.com/documentation/imapGateway/ImapWatcher %20Gateway%20Documentation.pdf

您剩下的就是需要确定哪些邮件与哪些退回邮件相匹配,当我过去做过类似的事情时,我在我拥有的域中使用唯一 ID 作为 failTo 电子邮件地址。如果您设置了它,然后使用您的侦听器 cfc 在返回路径中查找 id。

因此,您的发送代码将按照以下方式工作:

  • 生成唯一标识
  • 发送邮件
  • 将行添加到具有唯一 ID 的数据库

然后,您的 listener.cfc 将需要检查返回的电子邮件,如果找到唯一 ID,则使用您所追求的任何信息更新该行。

希望这至少会有所帮助,即使您需要设置其他一些位。

于 2012-04-13T13:35:02.747 回答
0

您可以在 undelivr 文件夹上使用直接观察程序来记录失败的电子邮件,但只有在它自己的服务器而不是共享服务器的情况下才是真正的解决方案。

于 2012-04-13T13:37:24.850 回答
0

据我所知,一旦它离开假脱机并关闭到您的 SMTP 服务器 CF 假设它已正确发送。

电子邮件将在 SMTP 服务器/中继链中涓涓细流,如果发生任何事情,他们唯一的指令就是将其退回到发件人地址或失败地址(如果存在)。CF 此时没有在听,因此无法响应。

我们使用称为 Glock 电子邮件处理器的外部工具来处理异常。它不是免费的,但效果很好。你可以在这里找到它:http ://www.glocksoft.com/email-processor/

您需要对其进行配置以检查故障地址,然后您可以从那里采取许多措施。我把它设置为三击系统。

电子邮件地址退回,我在我的电子邮件表中增加一个计数器,在 3 我从系统中停用该电子邮件。

不过,没有什么是你不能用 cfpop 自己做的。

于 2012-04-13T13:49:53.237 回答