我有一个 Exim 邮件服务器,它被配置为使得每封收到的电子邮件的内容都由一个 PHP 文件处理。
借助第三方库,我的 PHP 文件可以提取主题、发件人、收件人、附件等。
碰巧我的基础设施将发生变化,并且该脚本将不再能够与 EXIM 保留在同一台服务器上,因为它涉及现在位于另一个网络上的数据库等。
有没有办法配置 Exim 将电子邮件内容发送到外部 URL 而不是 PHP 文件?
我甚至考虑过保持我的 PHP 脚本运行并获取从 EXIM 收到的所有数据流并手动将其全部卷曲到新服务器,但我担心 Apache 的请求限制会在此过程中受到严重影响。
答案1
您不太可能会想这么做。如果 exim 可以将邮件发送到您的脚本,那么如何阻止另一个脚本也向那里发送垃圾邮件呢?如果您不知道答案,那么就不要设置它。相反,您可能应该设置一个单独的邮件服务器,您的脚本必须在该服务器上运行,并将邮件转发到该服务器。
话虽如此,如果你知道自己在做什么,那么你的方向并不疯狂。你不想使用 curl,但你可以编写一个在旧服务器中运行的自定义脚本,并使用它来联系在新服务器上运行的脚本。你需要
- 确保安全措施到位,以便只有你的脚本可以连接
- 确保已做好错误处理 - 如果远程服务器暂时消失,会发生什么情况?您的脚本是否应该重试?
- 确保你有大量监控和测试,这样你就知道什么时候出现问题以及需要修复什么
这可能是一项相当复杂的编程工作。在脚本运行的地方获取所需的数据库访问权限可能会更容易。