我正在用PHP开发一个Web应用程序,运行Snow Leopard的Macbook实际上是在调用PHP的mail()函数时发送电子邮件。它通过电子邮件发送给客户,这很糟糕。
我可以在我的代码中阻止这一点,但我宁愿禁用我的机器的邮件。有没有办法在Mac OS下执行此操作?
答案 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