我有一个小脚本,用于测试PHP mail(),如下所示:
<?php
error_reporting(E_ALL);
ini_set("display_errors",1);
mail('x@x.com','test','test') or die('could not send') ;
echo "Mail Sent";
?>
当我运行此脚本时,我根本没有输出。我没有得到任何错误,我没有得到任何回应,我查看来源,没有。
我尝试了很多不同的变体,如果我在上面的代码中取出邮件功能就可以了。
这是Windows托管服务器,因此我无法访问php.ini或其他任何内容
可能是某些配置在遇到错误时没有输出?
答案 0 :(得分:17)
根据PHP Runtime Configuration指南:
注意:虽然可能是
display_errors
在运行时设置(使用ini_set()
),它 如果脚本不会有任何影响 有致命的错误。这是因为 期望的运行时操作无法获得 执行。
您的代码似乎有语法错误('test,
缺少关闭撇号)。因此,您的程序遇到致命错误。要显示致命错误的唯一方式(编辑:错误日志之外)是在display_errors = 1
文件中设置php.ini
。< / p>
答案 1 :(得分:1)
问题在于您的sendmail服务器配置。如果您在个人开发环境中测试此脚本,请不要担心。它可以是设置/配置sendmail服务器的皮塔饼。如果您在生产服务器上遇到此问题,最简单的解决方案是使用具有smtp选项的邮件程序库(允许将您的电子邮件发送到外部smtp服务器进行处理/交付)。
以下是使用第三方smtp邮件脚本的指南... http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm