鉴于cfmail存在“FAILTO =''”选项,如果电子邮件未送达,则会触发发送到该电子邮件的电子邮件...
有没有办法以某种方式为电子邮件分配ID或跟踪#,将其存储在具有该ID的数据库中......如果失败则更新该电子邮件的状态?
我想跟踪反弹...最好不要将FAILTO发送到POP3或IMAP,然后使用cfimap进行检查......
有没有其他方法可以解决这个问题?
可能是电子邮件失败时触发的事件网关?
更新:我决定采用不同的方法,利用sendgrid API。 我希望借给我一些比CF更多的工具。
答案 0 :(得分: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。
因此,您的发送代码将按以下方式运行:
然后,您的listener.cfc需要检查返回的电子邮件,如果它找到唯一ID,则更新该行以及您所追求的任何信息。
希望即使您需要设置其他位,至少也会有所帮助。
答案 1 :(得分:0)
您可以在undelivr文件夹上使用直接观察程序来记录失败的电子邮件,但如果它自己的服务器而不是共享服务器,则只是真正的解决方案。
答案 2 :(得分:0)
据我所知,一旦它离开假脱机并且关闭到你的SMTP服务器CF假设它已被正确发送。
电子邮件将逐渐渗透到SMTP服务器/中继链中,如果发生任何事情,他们所拥有的唯一指令就是将其反弹回地址或故障地址(如果存在)。 CF此时没有收听,因此无法回应。
我们使用名为Glock电子邮件处理器的外部工具来处理异常。这不是免费的,但效果很好。您可以在此处找到它:http://www.glocksoft.com/email-processor/
您需要对其进行配置以检查failto地址,然后您可以执行许多操作。我把它设置为三击系统。
电子邮件地址退回,我在电子邮件表格中增加一个计数器,在3我从系统中停用该电子邮件。
尽管如此,你无法用cfpop自己做。