简体   繁体   English

PHP电子邮件脚本| 电子邮件未显示在收件箱中

[英]PHP Email Script | Email not showing up in inbox

I have a very simple contact form like the one below that submits to a php script that is supposed to send an email to the one specified. 我有一个非常简单的联系表单,例如下面的表单,它提交给一个php脚本,该脚本应该将电子邮件发送给指定的一个。 But nothing is appearing in my inbox. 但是收件箱中什么也没显示。 I thought maybe it is just delayed but it has been about 3 hours now with nothing showing up! 我以为可能只是延迟了,但现在已经有3个小时了,什么都没有出现!

Contact Form 联系表

<form name="contactform" id="contactForm" method="post" action="assets/send_form_email.php">
              <fieldset>
                <label for="name">Your Name</label>
                <input type="text" name="name" id="name" class="text ui-widget-content ui-corner-all" />
                <label for="email">Email</label>
                <input type="text" name="email" id="email" class="text ui-widget-content ui-corner-all" />
                <label for="question">Question/Comment</label>
                <textarea name="question" id="question" class="text ui-widget-content ui-corner-all" style="margin: 0px 0px 10px; width: 303px; height: 54px;"></textarea>
              </fieldset>
          </form>

* PHP Script * * PHP脚本*

   <? php
if (isset($_POST['email'])) {
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "";
    $email_subject = "New Contact Form | Website";
    echo $_POST['email'];
    echo $_POST['name'];
    echo $_POST['question'];

    function died($error) {
        // your error code can go here
        echo "We are very sorry, but there were error(s) found with the form you submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }
    // validation expected data exists
    if (!isset($_POST['name']) || !isset($_POST['email']) || !isset($_POST['question'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');
    }
    $name = $_POST['name']; // required
    $email_from = $_POST['email']; // required
    $question = $_POST['question'];
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
    if (!preg_match($email_exp, $email_from)) {
        $error_message. = 'The Email Address you entered does not appear to be valid.<br />';
    }
    $string_exp = "/^[A-Za-z .'-]+$/";
    if (!preg_match($string_exp, $name)) {
        $error_message. = 'The Name you entered does not appear to be valid.<br />';
    }
    if (strlen($question) < 5) {
        $error_message. = 'The Comments you entered do not appear to be valid.<br />';
    }
    if (strlen($error_message) > 0) {
        died($error_message);
    }
    $email_message = "Form details below.\n\n";

    function clean_string($string) {
        $bad = array("content-type", "bcc:", "to:", "cc:", "href");
        return str_replace($bad, "", $string);
    }
    $email_message. = "Name: ".clean_string($name)."\n";
    $email_message. = "Email: ".clean_string($email_from)."\n";
    $email_message. = "Question/Comment: ".clean_string($question)."\n";
    // create email headers
    $headers = 'From: '.$email_from."\r\n".'Reply-To: '.$email_from."\r\n".'X-Mailer: PHP/'.phpversion();@mail($email_to, $email_subject, $email_message, $headers); ?>
    <!--
    include your own success html here -->
    Thank you
    for contacting us.We will be in touch with you very soon. <? php
 } ?>

I really can not figure out what is wrong with the code to fix it. 我真的无法弄清楚修复它的代码出了什么问题。 Someone please help. 有人请帮忙。

Also be sure that mail() function works and there is no fail. 另外,请确保mail()函数有效并且没有失败。 Something like this: 像这样:

if (mail($email_to, $email_subject, $email_message, $headers))
{
    echo 'Sent';
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM