我开始在Centos 6.1 apache服务器上处理一个小测试表单。它设置为当前默认配置。基本网页是一个在Post上调用php脚本的HTML。从命令行运行脚本时,响应成功,并立即发送电子邮件。另一方面,如果我使用html网页,它会调用PHP,传递变量,但最后是" mail"命令未执行。
我已经包含了一个echo来查看变量内容是否被放入消息变量中。我认为这可能与SELinux政策有关?我已阅读此论坛上关于它的另一篇文章,但在该示例中,它是为sendmail设置的。我没有在centos服务器上安装或运行sendmail,但默认情况下运行postfix。 This是我读过的论坛帖子
运行#sestatus -b |时grep sendmail
它也被设置为 httpd_can_sendmail off ,就像在该线程中一样。
如果我运行#sestatus -b | grep postfix
我得到的唯一条目是 allow_postfix_local_write_mail_spool 。
我应该在引用的帖子中设置相同的sendmail selinux策略吗?
这是php脚本内容:
$name = $_POST['yourname'];
$lastname = $_POST['yourlastname'];
$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";
$message = "this message was sent by " . $name . ", " . $lastname . " \r\n";
$forperson = 'myemail@myemail.org';
$subject = 'new message';
echo $message;
mail($forperson, $subject, utf8_decode($message), $header);
提前感谢任何建议。