【问题标题】:Processing or dealing with emails with Failed Recipient处理或处理失败收件人的电子邮件
【发布时间】:2014-12-13 02:04:14
【问题描述】:

我们有一个发送电子邮件的 Coldfusion 服务器。有时,这些电子邮件会退回或失败,并且这些通知会在我的 gmail 帐户中返回给我。有没有办法可以解析这些电子邮件并从我们的数据库中删除无效的电子邮件,也许可以使用 gmail api?这些电子邮件是通过时事通讯订阅发送的,因此有一个取消订阅选项。在退回的消息中,可以获取用户 ID(这里考虑 cfhttp),然后我可以解析它以获取用户 ID,然后取消订阅/删除该用户,以便下次发送时事通讯时,我们不会再次获取退回的通知。

Google API 是正确的思路吗? (https://developers.google.com/gmail/api/v1/reference/users/messages/delete)

【问题讨论】:

  • 这是在较旧的 CF9 应用程序上。

标签: coldfusion gmail-api


【解决方案1】:

我已经有一段时间没有这样做了,但我只是让<cfpop> 登录到有问题的电子邮件帐户,搜索具有特定主题的电子邮件,从那里收集我想要的数据,比如它退回的电子邮件地址,并根据退回的电子邮件地址列表使用 IN 子句更新数据库。

请确保删除您之后扫描的邮件。

但是,在 CF10+ 中,您可以使用安全属性而不是调用 java 来进行安全连接。

<cfpop
   server="pop.gmail.com"
   action="getHeaderOnly"
   name="popMessages" port="995" maxrows="10"
   username="user@gmail.com"
   password="password"
   secure="yes|no">

关于如何使用 cfpop 访问 gmail 的快速谷歌返回了这个,对于连接旧 CF 很有用。

<!---
 See: http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
 Warning: Changing system properties is potentially dangerous and should be 
 done with discretion.
--->
<cfset javaSystem = createObject("java", "java.lang.System") />
<cfset javaSystemProps = javaSystem.getProperties() />
<cfset javaSystemProps.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory") />

<cfpop
   server="pop.gmail.com"
   action="getHeaderOnly"
   name="popMessages" port="995" maxrows="10"
   username="user@gmail.com"
   password="password">

【讨论】:

  • 您也在使用 easycfm 吗?我好久没和你“说话”了!我希望你做得很好,谢谢你的帮助。
  • @dlackey 我想你在想其他人。对不起。
  • cfqueryparam - 您一定遇到了一些旧条目。 IIRC、CF8+ 通过属性支持 ssl 和 tls。还要非常小心地更改系统属性,因为您正在为整个 jvm 全面更改它们...
  • 是的,我将删除 java 位,我实际上只是在 google 上搜索了 cfpop gmail 并想出了一个代码示例,但我会更新它,我不想鼓励不良形式。
  • 仅供参考:添加了来自 javadocs 的警告,以防有人不阅读 cmets。当然,除非使用 真正 旧版本,即 MX7 ,否则不需要 java hack :)
【解决方案2】:

您当然可以编写代码(使用 CFPOP 或 cfImap)来检查您的电子邮件收件箱是否有退回邮件。如果 FROM 地址专门用于时事通讯而不是您的个人收件箱会更好 - 因为这些电子邮件将与您的个人电子邮件混合在一起。

Ria Forge 上有一款由 Brian Ghidinelli 开发的应用程序,名为 Email Bounce Detector,它可以帮助您检查每条消息以确定它是否是退回邮件。

有一点需要注意,有些退回邮件应该被标记为删除。例如,邮箱已满消息,或临时延期(灰色列表)。因此,您的逻辑不仅需要跟踪“是否反弹”,还需要跟踪原因和次数。通常,有一个阈值 - 一周内连续 3 次或其他时间 - 考虑到您的列表,这是有道理的。

【讨论】:

  • gmail 不是我的个人帐户,所以没有问题,但你确实在那里提出了一些好处。感谢您的反馈。
猜你喜欢
  • 2015-05-20
  • 2012-12-17
  • 2015-12-27
  • 2013-10-15
  • 1970-01-01
  • 2019-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多