Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP可以从命令行发送电子邮件,但不能从浏览器发送_Php - Fatal编程技术网

PHP可以从命令行发送电子邮件,但不能从浏览器发送

PHP可以从命令行发送电子邮件,但不能从浏览器发送,php,Php,我在我的办公室里有一张表格。当有人提交表单时,它会将他们重定向到发送表单的php脚本。唯一的问题是,当我使用浏览器时,表单不会向我发送任何内容。我在同一台服务器上运行了一个脚本,当我从命令行执行该脚本时,它会立即发送电子邮件。当我转到时,它会发出确认消息,但不会发送任何内容。发生了什么事?PHP正在使用MSMTP发送电子邮件,如果这样有帮助的话。我相信apache是以root运行的(我知道这很糟糕)。我怎么检查 如果有人想要,下面是代码: <?php ini_set( 'disp

我在我的办公室里有一张表格。当有人提交表单时,它会将他们重定向到发送表单的php脚本。唯一的问题是,当我使用浏览器时,表单不会向我发送任何内容。我在同一台服务器上运行了一个脚本,当我从命令行执行该脚本时,它会立即发送电子邮件。当我转到时,它会发出确认消息,但不会发送任何内容。发生了什么事?PHP正在使用MSMTP发送电子邮件,如果这样有帮助的话。我相信apache是以root运行的(我知道这很糟糕)。我怎么检查

如果有人想要,下面是代码:

<?php 
    ini_set( 'display_errors', 1 );
    error_reporting( E_ALL );
    $from = "mailbot@prototypexenon.tech";
    $to = "<MYEMAIL>";
    $subject = "PHP Mail Test script";
    $message = "This is a test to check the PHP Mail functionality";
    $headers = "From:" . $from;
    mail($to,$subject,$message, $headers);
    echo "Test email sent";
?>


编辑:显然新的服务器所有者足够聪明,不会让apache以root用户身份运行。现在都修好了。感谢@EdHeal

通过命令行运行的PHP和通过web服务器运行的PHP可以使用完全不同的PHP.ini文件。运行phpinfo()并查看每种情况下使用的php.ini文件。可能其中一个没有正确配置SMTP。

显然,新服务器所有者足够聪明,不会让apache以root用户身份运行。现在都修好了。谢谢@EdHeal

查看您的PHP错误日志,我想您会看到原因。您能提供代码片段吗?@PrototypeXenon-这会更好地作为问题的编辑。运行脚本的用户是否也会对permissions@EdHeal找到php.ini或搜索php.ini如果你在windows上,我得到这个/etc/php/7.0/cli/php.ini/etc/php/7.0/fpm/php.ini,因为我使用的是php fpm,但命令行和浏览器ini通常是different@smugford它在Ubuntu上运行。我是100%我正在编辑正确的文件。。。。可能是塞利努克斯