我正在用 PHP 开发一个 Web 应用程序,我的 Macbook 运行 Snow Leopard,当调用 PHP 的 mail() 函数时,它实际上正在发送电子邮件。它正在向客户发送电子邮件,这很糟糕。
我可以在代码中阻止这种情况,但我宁愿禁用我的机器的邮件功能。有没有办法在 Mac OS 下做到这一点?
答案1
最简单的答案是在发送逻辑中设置一个开关,检查是否已DEVELOPMENT
定义。如果已定义,它将邮件输出到文件,否则,它将假定为生产环境并继续正常的发送过程。
您需要做的就是设置DEVELOPMENT = TRUE
您的配置,然后就可以尽情玩耍而不会打扰客户!
您的本地 postfix 配置位于/etc/postfix
。 似乎有一个重复的,/private/etc/postfix
但我对 OSX 不太熟悉。在 Linux 上,我只需删除守护进程并停止服务运行即可。这可能会导致您的程序出现运行时错误,而且似乎没有必要。
答案2
部分禁用 postfix 运行sudo launchctl unload /System/Library/LaunchDaemons/org.postfix.master.plist
但是您尝试发送的邮件会被卡住/var/spool/postfix/maildrop
而无法发送。
答案3
我能想到的最简单的事情(如果您只使用网络邮件或 Imap),只需在网络(路由器)级别阻止从您的机器传出的端口 25,或者使用 OS X 防火墙并阻止端口 25 传出。
如果这不起作用,我只需考虑将不存在的中继放入您的 php.ini 中,这样所有邮件都无法发送......
但是,您最好使用一个真正的中继,它实际上并没有发送,但看起来像是发送了 - 防火墙或应用程序或假中继的阻止都可能产生您可能无法解释的错误,并在您实际上线时造成问题。
答案4
您需要将开发环境与发布环境区分开。
这就是解决您真正问题的方法。