email - 删除未发送电子邮件的电子邮件地址

标签 email coldfusion coldfusion-11

我个人看不出有什么方法可以做到这一点,但我希望可以有一个聪明的 hack 来让它工作。

我们必须定期向客户发送电子邮件,许多客户的电子邮件都过期了,导致我们无法发送邮件。为了保持数据库的准确和干净,当电子邮件发送失败时,我想从数据库中删除他们的记录。

所以目前它有点像这样:

<cfloop query="rsCustomers">
<cftry>

<cfmail to="rsCustomers.Email" from="us@ourcompany.com" failto="fails@ourcompany.com" subject="Whatever">
[email text here]
</cfmail>

<cfcatch type="any">
<!--- just to skip this record when it fails to send --->
</cfcatch>
</cftry>

</cfloop>

当记录中存在错误(例如格式错误的电子邮件地址)时,我可以在捕获区域内运行查询以删除记录。但是当邮件无法投递时什么也不会发生。我的收件箱收到一条失败通知,但这些通知可能有数百条,因此很难手动检查并从数据库中删除。

有没有办法“捕获”发送失败的电子邮件,然后将它们反馈给查询以从数据库中删除?

最佳答案

有人曾经在我参加的一个事件中就此做过介绍。方法是:

  • 发送邮件时,在 failto 属性中使用特殊的电子邮件地址。
  • 编写一个使用 cfpop 标签的 .cfm 文件来读取发送到该地址的邮件。 (这可能是在 cfexchange 标签可用之前)
  • 添加读取传递失败通知并提取电子邮件地址的代码。
  • 对这些地址做点什么

演示者将此文件作为计划作业运行。

关于email - 删除未发送电子邮件的电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35038905/

相关文章:

email - mongodb查询持续运行

email - Python 3.4 电子邮件 ContentManager - 如何使用?

coldfusion - ColdFusion 11 中客户端和服务器端 cfc 之间有什么区别

data-structures - ArrayAppend 返回 bool 值而不是数组

android - 电子邮件链接在 Android 上不起作用

c# - 如何从 C# 应用程序发送签名的电子邮件?

coldfusion - Coldfusion10 是否附带 cfcompile 实用程序?如果有,它位于何处?

python - 如何用HTML显示10万行以上的数据库查询结果?

coldfusion - 使用 cfhttp 的 addParam 方法向 HTTP 请求添加 header

mysql - 如何减少每个月的查询次数