在Mac OS上禁用PHP邮件?

时间:2009-12-15 21:26:44

标签: php macos email

我正在用PHP开发一个Web应用程序,运行Snow Leopard的Macbook实际上是在调用PHP的mail()函数时发送电子邮件。它通过电子邮件发送给客户,这很糟糕。

我可以在我的代码中阻止这一点,但我宁愿禁用我的机器的邮件。有没有办法在Mac OS下执行此操作?

6 个答案:

答案 0 :(得分:3)

我通常使用mail()的包装类检查常量(类似于DEBUG_MODE)并将电子邮件发送给我而不是原始收件人(并包括邮件正文中的所有原始收件人,以便我确认事情正在发挥作用)。这是第一次额外的工作,但这意味着我不必担心向“真正的”人发送电子邮件,但我仍然知道事情正在发挥作用。

我发布了simple example。它可以使用很多改进(标题处理,确保cc和bcc字段也被剥离),但它会让你大部分回家。

答案 1 :(得分:3)

感谢您的帖子。这是我的解决方案。

我已将/ usr / sbin / sendmail移至/usr/sbin/sendmail.original,并使用虚拟sh脚本替换/ usr / sbin / sendmail。我不希望这台特定的机器发送电子邮件。

我还实施了第二个解决方案,即检查当前计算机是否为开发计算机,如果是,则不会发送任何电子邮件。为此我使用了一个标志,Config :: get('IS_DEVELOPER')。

答案 2 :(得分:2)

为什么不将电子邮件地址移动到配置文件,然后在您的计算机上使用不同的地址集?这样的事情不应该硬编码到应用程序中。

例如,在我的应用程序中,我有一个包含所有信息的Config数据库。在处理应用程序时,Config表设置为虚拟或无害的地址/信息。这样,您就不必弄乱开发PC上的任何东西,也可以更容易维护,就像电子邮件地址发生变化一样。

答案 3 :(得分:1)

这意味着您必须在某个时候安装sendmail(或假装为sendmail的东西),但除了禁用它之外,您应该在代码中防止这种情况。

答案 4 :(得分:0)

您应该可以通过更改SENDMAIL_PATH设置来关闭mail()。文档here

答案 5 :(得分:-1)

您可以在php.ini中尝试disable_functions选项。

例如:disable_functions = mail