这看起来像是一件业余的事情,但是当涉及PHP时,我是业余爱好者...
基本上是我为组织创建的网站,我是需要联系表的一部分,因为我一直在尝试学习自己宁愿自己制作代码,而不仅仅是获取一些插件。但是我的代码似乎不起作用。
也是第一篇文章,我敢肯定这不是重复的,因为它是不同的代码,我一直在使用此网站上的帖子来尝试使它起作用,但没有运气,所以认为最好发布我的代码希望拥有比我更多的脑细胞的人能帮助
这是页面本身的HTML:
<form method="post" action="contactengine.php">
<label for="Name"><h2>Your Name:</h2></label>
<input type="text" name="Name" id="Name" placeholder="Please Enter Your Name"/>
<label for="Email"><h2>Your Email:</h2></label>
<input type="email" name="Email" id="Email" placeholder="Please Enter Your Email Address"/>
<label for="Message"><h2>Message:</h2></label><br />
<textarea name="Message" rows="20" cols="20" id="Message"></textarea>
<input type="submit" name="submit" value="Submit" class="submit-button" />
</form>
php:
<?php
$EmailFrom = "webmaster@temporary.co.uk";
$EmailTo = "webmaster@temporary.co.uk";
$Subject = "Contact Form Submission";
$Name = Trim(stripslashes($_POST['Name']));
$Email = Trim(stripslashes($_POST['Email']));
$Message = Trim(stripslashes($_POST['Message']));
$headers = 'MIME-Version: 1.0' . "rn";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "rn";
// validation
$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv="refresh" content="0;URL=error.htm">";
exit;
}
// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "n";
// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// redirect to success page
if ($success){
print "<meta http-equiv="refresh" content="0;URL=contactthanks.php">";
}
else{
print "<meta http-equiv="refresh" content="0;URL=error.htm">";
}
?>
我感到很愚蠢,因为有很多关于创建工作联系表的文献,但它们似乎都没有起作用
如果有什么区别,我在1and1上托管?
预先感谢
编辑:好的,我忘了提到这个问题:电子邮件只是没有传递,所以我实际上不知道成功是否有效,我尝试了不同的电子邮件地址,检查了整个shabang-所以我``努力弄清楚它出了什么问题
不要使用内置的mail
命令。您将要使用Swift Mailer作为mail()
替换之类的东西,以及像Mailgun.org这样的邮件服务发送邮件。
内置的mail
命令可以在服务器上被阻止。或者,由于您不是从旨在发送电子邮件的服务器发送的,因此电子邮件可能会被别人的黑名单在SMTP级别上阻止。也许它们在您的垃圾邮件盒中。
您可能需要在服务器上安装MailHog,并将其用作SMTP服务器来测试mail()
命令是否甚至在服务器上工作。