我有一个联系表。它在我使用的2台服务器中的1台上工作正常。但不是第二个。第二个是我想保留的那个。当然...怎么可能?我试图切换PHP版本,但仍然没有任何变化。目前:7.2.12
感谢帮助。
<?php
if (isset($_POST['submit'])) {
$name = $_POST['name'];
$mailFrom = $_POST['email'];
$message = $_POST['message'];
$mailTo="john.doe@example.com";
$subject="Message Sent From a Pilgrim Diaries User.";
$txt = "name: ".$name."\n"."Email: ".$mailFrom."\n"."sent the following: "."\n\n".$message;
$headers= "From: ".$mailFrom;
mail($mailTo, $subject, $txt, $headers);
header("Location: index.html?Mailsend");
}
?>
以下是我的设置的屏幕截图:
答案 0 :(得分:0)
让我们从头开始
首先检查sendmail是否已正确配置并正常工作,在终端上运行以下代码以直接从终端发送邮件,
echo "Mail From Terminal" | mail -s subject user@gmail.com
如果以上发送邮件,则服务器的sendmail配置正确。其他配置。 然后检查php是否正在发送邮件,请尝试从终端运行,
php -r "mail('test@gmail.com', 'Subject', 'Mail from PHP through terminal')"'
如果以上方法都能奏效,那您就很好了。 PHP能够发送邮件。否则请检查您的php.ini配置。
现在,最重要的是。必须有SELinux阻止apache才能发送邮件,请尝试从终端运行
restorecon /usr/sbin/sendmail
setsebool -P httpd_can_sendmail 1
setsebool -V httpd_can_sendmail 1
现在,尝试再次运行脚本。
万一上述任何命令均以静默方式失败,请检查服务器日志并回复。