【问题标题】:Prevent ColdFusion from sending email阻止 ColdFusion 发送电子邮件
【发布时间】:2014-01-30 19:12:20
【问题描述】:

我想禁止在我们的开发服务器上发送所有电子邮件,即使在 cfmail 标记中使用了服务器和凭据。我希望将无法传递的消息放入线轴,以便我们可以阅读它们。

这是在 Windows 上。

编辑 - 为什么? 我们目前在管理员中将邮件服务器设置为虚拟,但我们在各种邮件标签上指定了许多服务器。曾经被开发者不小心发送邮件烧毁,我们想完全禁用它。

【问题讨论】:

  • 这是在linux上还是win上?还有WHYT?
  • 添加了为什么并获胜。谢谢。
  • 它不是“为什么”而是 你尝试了什么,因为你没有列出你的尝试。点击上面的链接了解详情。
  • 感谢 Jakub 的链接。有趣的阅​​读。

标签: coldfusion firewall cfmail


【解决方案1】:

您可以对端口 25 传出设置防火墙(如果您在本地中继,请确保并排除 127.0.0.1)。您将使用 iptables 或 Windows 防火墙来阻止传出端口 25 连接。您的邮件将由 CF 创建,但 CF 假脱机程序无法投递,会将它们退回到 undeliverables 文件夹。

【讨论】:

  • 如果不能在 ColdFusion neo XML 或自定义全局覆盖中存在,这绝对是一个很好的解决方案。
  • 对于你想要做的事情,我认为这是你唯一可行的选择。没有禁用 cfmail 标记,我认为没有办法使用应用服务器配置来做到这一点。
  • 是的,我就是这么想的。禁用邮件标签会导致通常的访问错误。即使没有,也不会导致假脱机程序中的任何内容都无法交付。
  • 我要选这个。这是必须起作用的权宜之计“大锤”。如果您有时间或范围有限,另一个答案当然是更好的选择。这种选择确实有风险,因为您将控制置于应用程序之外。
  • 我从未尝试过,但您可以简单地在操作系统中编辑主机文件,使邮件服务器名称指向缺少邮件服务器的 IP 地址。如果您在 Dev Web 服务器上缺少邮件服务器,则可以像执行以下条目一样简单:127.0.0.1 mail.mydomain.com。
【解决方案2】:

根据您有多少 cfmail 标记,您可以考虑将它们重写为 cfmail 的抽象,然后您可以有条件地全局禁用。

我自己的 Mailer.cfc 就是一个例子,它只允许这种用例。 http://www.bryantwebconsulting.com/docs/com-sebtools/mailer-cfc.cfm (参见“模拟邮寄”)

虽然我认为 Mailer.cfc 会专门解决您的问题,但更广泛的一点是您可以为功能创建一个抽象层,然后将您自己的行为应用到它上面。这确实需要对代码进行一些更改,但也为您的应用程序提供了很大的灵活性和控制力。

【讨论】:

  • 很酷的工具和很棒的文档。
  • 这基本上是我一段时间以来一直在做的事情。在我的 application.cfm 或 application.cfc 中,取决于应用程序的年龄,我有一个变量 Application.DevFlag。然后我有一个用于发送所有电子邮件的 CFC。如果 CFC 知道它正在开发中,它将绕过所有电子邮件到该应用程序的任何支持电子邮件地址。这反过来又使我能够确保电子邮件会发送给正确的人并且看起来正确。我的电子邮件 CFC 还处理一些其他需求,例如罐装外观等。
  • 我们在一个项目中遇到了同样的问题,因为我们不希望任何电子邮件从我们的开发服务器中发出。我们也被烧过一次。一次 :)。无论如何,我想为这种方法添加一个基于评论的 +1。我们更新了我们的代码库,以便有一个 CFMAIL 标记,位于我们使用的 Mailer.cfc 中。在开发模式下,很容易禁用邮件。
  • 这绝对是我会使用的解决方案,因为如果我们需要将出站邮件保留在应用程序中,则缺少任何禁用出站邮件的全局选项。这是有人提出的,但希望避免它。拥有数百个邮件标签,这意味着大量的测试。如果是一把,那将不是问题。
猜你喜欢
  • 1970-01-01
  • 2016-04-06
  • 2014-11-21
  • 2013-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
相关资源
最近更新 更多