我意识到这个问题的标题被过度使用了,但我找不到我的问题的答案。这可能是因为我对 PHP 不太了解并且我不理解这个问题,或者因为我有一个不同的问题,但我想我会发布它,看看是否有人可以帮助我。
我为我所在城市的当地教堂开发了一个网站,并在我的计算机上制作了该网站,将其作为子目录放在我的网站上并进行了全部测试。效果很好。客户想要的一件事是有一个可以发送电子邮件的电子邮件表单。我做到了,一切都很好。
然后我把它上传到教堂服务器上,我觉得它也很好。但后来我们决定尝试使用电子邮件表单,但由于某种原因它不起作用。
我通过让用户使用单选按钮选择收件人(牧师、办公室经理等)来制作电子邮件表单,这将改变电子邮件表单的操作。我只是做了这样的事情:
if (recipent == "pastor") {
document.forms[0].action = "../scripts/php/pastor_contact.php";
} else if (recipent == "pastoralAssist") {
document.forms[0].action = "../scripts/php/pastoral_assist_contact.php";
} else if (recipent == "famMinistry") {
document.forms[0].action = "../scripts/php/sacra_assist_contact.php";
} else if (recipent == "sacraAssist") {
document.forms[0].action = "../scripts/php/fam_ministry_contact.php";
}
我知道这不是最干净的,但效果很好。然后,php 文件看起来都与此非常相似(只是一封不同的电子邮件)”
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$formcontent="From: $name \n Email: $email \n Phone Number: $phone \n Message: $message";
$recipient = "email@example.com";
$subject = $_POST['subject'];
$mailheader = "$subject \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("There seems to be an error with this form. Sorry about the inconveince. We are working to get this fixed.");
header('Location: ../../quickylinks/message_sent.html') ;
?>
简而言之,它的作用是从电子邮件表单中收集信息,将其作为电子邮件提交,然后将用户重定向到“已发送消息”页面。这适用于我的服务器,但不适用于他们的服务器,所以我相信这与他们的服务器有关。
您可以在此处查看他们的服务器信息,并在此处查看我的服务器信息。
当用户发送消息时,他们收到“此表单似乎有错误。很抱歉给您带来不便。我们正在努力解决此问题。 ”尽管代码相同,但电子邮件没有通过我的服务器,它在那里工作正常。
我最初的想法是他们的服务器上没有安装 PHP(很少见,但确实发生了)。但它是。所以我想也许它已经安装了,但是“邮件”功能被禁用了。所以我尝试了以下php代码:
<?php
if (function_exists('mail')) {
echo 'mail() is available';
} else {
echo 'mail() has been disabled'; }
?>
它返回“mail() 可用”。
所以现在我被卡住了,我不知道问题可能出在哪里。正如我所说,我还不是很擅长 PHP,所以如果有人能给出详细的答案,我将非常感激!
太感谢了!