简单联系表格的问题

时间:2013-07-10 05:36:24

标签: php html phpmailer contact-form

我提前为任何新手错误道歉,因为这是我第一次尝试拼凑HTML / PhP联系表单。我已经用相同的问题搜索了以前的问题,但没有找到任何实质内容。

问题是电子邮件没有发送。到目前为止我尝试过的事情: - 确认的SMTP功能 - 确认它不是与主机相关的问题 - 在另一个模板上使用这个确切的表单/ PHP邮件程序,它工作正常 - 检查垃圾邮件文件夹

以下是联系表格:

    <form action="contact.php" method="POST" id="contact-form" class="form">
    <input type="hidden" value="" name="check">
    <noscript>
    <p class="noscript">JavaScript is required to use this form, please make sure your browser supports it.</p>
    </noscript>
    <p class="input">
    <label for="name" class="label">Name</label>
    <input type="text" name="name" id="name">
    </p>
    <p class="input">
    <label for="company" class="label">Company</label>
    <input type="text" name="company" id="company">
    </p>
    <p class="input">
    <label for="email" class="label">Email</label>
    <input type="text" name="email" id="email">
    </p>
    <p class="input">
    <label for="phone" class="label">Phone</label>
    <input type="text" name="phone" id="phone">
    </p>
    <p class="dark input">
    <label for="title" class="label">Project Title</label>
    <input type="text" name="title" id="title">
    </p>
    <p class="dark input">
    <label for="timeline" class="label">Timeline</label>
    <input type="text" name="timeline" id="timeline">
    </p>
    <p class="dark textarea">
    <label for="details" class="label">Details</label>
    <textarea name="details" id="details"></textarea>
    </p>
    <p>
    <label for="send" class="send-label">Everything look good? Click send.</label>
    <input type="submit" value="Submit" name="submit" class="button">
    </p>
    </form>

这是PHP邮件:

    <?php
    $field_name = $_POST['name'];
    $field_company = $_POST['company'];
    $field_email = $_POST['email'];
    $field_phone = $_POST['phone'];
    $field_title = $_POST['title'];
    $field_timeline = $_POST['timeline'];
    $field_message = $_POST['details'];

    $mail_to = 'MyEmail@email.com';
    $subject = 'Quote request from '.$field_name;

    $body_message = 'From: '.$field_name."\n";
    $body_message .= 'E-mail: '.$field_email."\n";
    $body_message .= 'Message: '.$field_message;

    $headers = 'From: '.$field_email."\r\n";
    $headers .= 'Reply-To: '.$field_email."\r\n";

    $mail_status = mail($mail_to, $subject, $body_message, $headers);

    if ($mail_status) { ?>
    <script language="javascript" type="text/javascript">
    alert('Thank you for the message. We will contact you shortly.');
    window.location = 'contact.html';
    </script>
    <?php
    }
    else { ?>
    <script language="javascript" type="text/javascript">
    alert('Message failed. Please contact the webmaster.');
    window.location = 'contact.html';
    </script>
    <?php
    }
    ?>

仅供参考,“MyEmail@email.com”不是我使用的电子邮件。我使用替代隐私目的。

谢谢!

2 个答案:

答案 0 :(得分:0)

从PHP发送邮件充满了困难。您的代码可能没有错误,但邮件可能无法发送,因为(根据需要选择多个):

  • 它似乎不是来自服务器上的电子邮件地址;
  • 默认情况下会阻止出站电子邮件,直到您要求它为止;
  • 端口25上的出站邮件被阻止,您必须使用特定服务器。
  • 您的服务器已列入黑名单;
  • 您的邮件被垃圾邮件过滤器阻止;
  • 其他一些原因。

让自己轻松生活。使用像swiftmailerPHPmailer这样的库来处理发送邮件,并尝试轻松发送到发送服务器上的地址。然后从那里开始工作。准备好必须使用SMTP身份验证,并可能使用付费外部服务为您发送邮件。

答案 1 :(得分:0)

$field_message是空白的。它在表单上的哪个位置,然后在邮件处理脚本中?