PHP联系表格 - 没有发送电子邮件,实际上是提交的



这看起来像是一件业余的事情,但是当涉及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()命令是否甚至在服务器上工作。

相关内容

最新更新