【问题标题】:PHP to email form: 'spam' issue, validation, alert boxPHP 到电子邮件表单:“垃圾邮件”问题、验证、警报框
【发布时间】:2012-07-16 17:09:24
【问题描述】:

我花了很多时间尝试在 stackoverflow 上找到的东西,但我似乎无法找到我正在寻找的东西。

我还要说我对 PHP/JavaScript 的了解是基本的,因为这不是我通常参与的。

我有一个非常简单的联系表格:

  <form action=' ' method='post'>

    <label for='firstName' >First Name: </label>
    <input type='text' name='firstName' id='firstName' />

    <label for='lastName' >Last Name: </label>
    <input type='text' name='lastName' id='lastName' />

    <label for='phone' >Contact No :</label>
    <input type='text' name='phone' id='phone' />

    <label for='email' >Email Address:</label>
    <input type='text' name='email' id='email' />

    <input type='image' id="submit" src="images/submit.png" class="uibutton" onclick="show_alert()" />

  </form>

这是我的 PHP:

<?php

if(isset($_POST['email'])) {

$field_name = $_POST['firstName'];
$field_surname = $_POST['lastName'];
$field_phone = $_POST['phone'];
$reply_to = $_POST['email'];


//send email
$mail_to = 'me.pfrrr@gmail.com';
$subject = 'Contact a site visitor '.$field_name." ".$field_surname;

$body_message = 'First Name: '.$field_name."\n";
$body_message .= 'Last Name: '.$field_surname."\n";
$body_message .= 'Phone Number: '.$field_phone."\n";
$body_message .= 'Email Address: '.$reply_to;

$headers = 'From: '.$field_name."\r\n";

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

} ?>

我希望我的表单向我发送电子邮件。它做到了;但是我收到的电子邮件总是进入“垃圾邮件”文件夹。域/IP 不在 PBL 列表中。

如果有人至少可以指导我如何实现以下目标并回答一些问题,我将不胜感激:

  1. 我想让电子邮件进入“收件箱”文件夹

2.我想验证表单,但我希望我的错误出现在文本字段下。我可以使用 Dreamweaver 提供的工具来做到这一点;但是它仍然允许我提交一个空表单。有没有办法可以使用 php/html/css 以美观的方式显示错误? (在同一页面上 > 每个文本字段下)

3.在“提交”时,我有一个警告框说“谢谢”。只有正确填写表格时,如何才能弹出警告框?

我将非常感谢“正确”的答案(不是:“去阅读 php/javascript 教程”类型的东西,因为我已经这样做了,尝试了一些东西,但它们没有奏效 - 所以我需要进一步的建议)

谢谢你:)

【问题讨论】:

  • 您可能应该分别发布每个问题
  • 检查“垃圾邮件”电子邮件中的标题 - 通常有垃圾邮件过滤器评分信息可以准确告诉您垃圾邮件过滤器触发的原因。除此之外,不要使用 PHP mail() 函数。这是一个非常基本的垃圾,在美好的一天几乎无法工作。使用功能更全面的邮件程序,例如 PHPMailer 或 Swiftmailer。
  • 我建议您更好地格式化您的 From。它应该是“发件人:$field_name \r\n”。这可能会触发垃圾邮件过滤器。

标签: php html css validation error-handling


【解决方案1】:
  1. 如果这只是发送到您的电子邮件,请将发件人地址添加到您的联系人中。这将覆盖所有垃圾邮件过滤器。

  2. 如果你想要求字段,你可以使用html5 form validation。您还可以使用它们来检查有效的电子邮件地址。

  3. 将 javascript 从按钮 onclick="" 移动到 &lt;form&gt; 标记中的 onsubmit=""

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    相关资源
    最近更新 更多