【问题标题】:Why does Coldfusion not send any email if only one of them is invalid?如果只有其中一封无效,为什么 Coldfusion 不发送任何电子邮件?
【发布时间】:2024-01-15 21:52:01
【问题描述】:

我有一个 cfmail 发送给大约 8 人(动态)。其中一个地址不正确,因此不会发送整封电子邮件。 Coldfusion 管理员或 cfmail 标签中是否有任何设置可以更改,以便它将发送给 7 个正确的人,并且只有一个人失败。我正在使用 CF8。

【问题讨论】:

  • 你能不能一一邮寄,而不是全部寄到To:或CC:?
  • 正如 Tomalak 在下面所写的,解决此问题的唯一方法是发送单独的电子邮件。由于 CFMail 被写入一个无效的地址将破坏聚会。这是有道理的,因为格式错误的电子邮件地址是一个错误。

标签: email coldfusion coldfusion-8 cfmail


【解决方案1】:

老派:

<cfloop query="mails">
  <cftry>
    <cfmail from="#from#" to="#to#">
      <!--- ... --->
    </cfmail>
    <cfcatch>
      <div>
        Mail not sent. #cfcatch.detail#
      </div>
    </cfcatch>
  </cftry>
</cfloop>

【讨论】:

  • 谢谢,是的,我知道这是一种可能性。但是,我正在寻找一种不涉及遍历地址的解决方案。在我看来,对于所有其他邮件客户端,如果您有 x 好和 y 坏,那么 x 将被发送并且 y 将失败,它们不会全部失败。你(或任何人)知道为什么 Coldfusion 没有遵循这个吗?
  • 答案是,恕我直言,ColdFusion 不是电子邮件客户端。它是一种具有电子邮件发送功能的过程式/命令式/oo 编程语言。就CF而言,发送邮件是一步。如果它工作 90%,而不是整体失败,调试起来会更加困难。尝试预先对电子邮件地址进行一些基本的有效性检查。没什么特别的,只是虚假地址在邮件服务器上因为无法投递而失败,而不是在您的应用程序中因为无效而失败。
【解决方案2】:

您可以使用 IsValid() 预处理电子邮件列表,并从列表中删除任何失败的项目。

【讨论】:

    最近更新 更多