使用 Exim 通过外部脚本处理收到的邮件

使用 Exim 通过外部脚本处理收到的邮件

我有一个 Exim 邮件服务器,它被配置为使得每封收到的电子邮件的内容都由一个 PHP 文件处理。

借助第三方库,我的 PHP 文件可以提取主题、发件人、收件人、附件等。

碰巧我的基础设施将发生变化,并且该脚本将不再能够与 EXIM 保留在同一台服务器上,因为它涉及现在位于另一个网络上的数据库等。

有没有办法配置 Exim 将电子邮件内容发送到外部 URL 而不是 PHP 文件?

我甚至考虑过保持我的 PHP 脚本运行并获取从 EXIM 收到的所有数据流并手动将其全部卷曲到新服务器,但我担心 Apache 的请求限制会在此过程中受到严重影响。

答案1

您不太可能会想这么做。如果 exim 可以将邮件发送到您的脚本,那么如何阻止另一个脚本也向那里发送垃圾邮件呢?如果您不知道答案,那么就不要设置它。相反,您可能应该设置一个单独的邮件服务器,您的脚本必须在该服务器上运行,并将邮件转发到该服务器。

话虽如此,如果你知道自己在做什么,那么你的方向并不疯狂。你不想使用 curl,但你可以编写一个在旧服务器中运行的自定义脚本,并使用它来联系在新服务器上运行的脚本。你需要

  • 确保安全措施到位,以便只有你的脚本可以连接
  • 确保已做好错误处理 - 如果远程服务器暂时消失,会发生什么情况?您的脚本是否应该重试?
  • 确保你有大量监控和测试,这样你就知道什么时候出现问题以及需要修复什么

这可能是一项相当复杂的编程工作。在脚本运行的地方获取所需的数据库访问权限可能会更容易。

相关内容