【问题标题】:PHP mail is not sending email to my email addressPHP 邮件未向我的电子邮件地址发送电子邮件
【发布时间】:2014-07-20 19:47:33
【问题描述】:

我一直在四处寻找,似乎找不到如何使这项工作 - 它根本没有向我的地址发送电子邮件。这是我的 HTML 表单:

<form id="contactMe" name="contact" method="post" novalidate="novalidate">
    <fieldset>
        <label for="name" id="name">Name<span class="required">*</span></label>
            <input type="text" name="name" id="name" size="30" value="" required="">
            <label for="email" id="email">Email<span class="required">*</span></label>
            <input type="text" name="email" id="email" size="30" value="" required="">
            <label for="phone" id="phone">Phone</label>
            <input type="text" name="phone" id="phone" size="30" value="">
            <label for="Message" id="message">Message<span class="required">*</span></label>
            <textarea name="message" id="message" required=""></textarea>
            <label for="Answer" id="answer">Name the house pet that says “<i>woof</i>“<span class="required">*</span></label>
            <input type="text" name="answer" value="" required=""></br>
            <input id="submit" type="submit" name="submit" value="Send">
        </fieldset>
        <div id="success">
            <span class="green textcenter">
            <p>Your message was sent successfully! I will be in touch as soon as I can.</p>
            </span>
        </div> <!-- closes success div -->
        <div id="error">
            <span><p>Something went wrong, try refreshing and submitting the form again.</p></span>
        </div> <!--close error div-->
    </form>

这是我的 PHP 保存为 mailer.php:

<?php

    $to = "someone@gmail.com";
    $from = $_REQUEST['email'];
    $name = $_REQUEST['name'];
    $headers = "From: $from";
    $subject = "You have a message from your.";

    $fields = array();
    $fields{"name"} = "name";
    $fields{"email"} = "email";
    $fields{"phone"} = "phone";
    $fields{"message"} = "message";

    $body = "Here is what was sent:\n\n"; foreach($fields as $a => $b){   $body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); }

    mail("maytee.kneitz@gmail.com",$subject,$message,"From: $from\n");
    echo 'Mail sent';

?>

这是我第一次使用邮件/联系表格,如果这是一个明显的问题,非常抱歉。我似乎无法找到它。任何指导将不胜感激。

我的脚本中确实有验证(未在此处发布)。

【问题讨论】:

  • 您安装了邮件服务器吗?
  • 并且您确定您没有被视为垃圾邮件或被外发服务器阻止,因为您尝试从与您的发件人标头不同的服务器发送邮件? (发件人:someone@some-other-domain.com)您可能希望将其更改为回复并省略或更改为 do-not-reply@your-domain.com ... 或使用某些内容喜欢 swift mailer,因为它已经优于手工制作。swiftmailer.org
  • 我检查了我的垃圾邮件,但它不在其中。我正在使用 Dreamhost 作为我的托管服务,并尝试将其路由到多个电子邮件地址,但它就是不会去。
  • 你知道你的 $_REQUEST 数组有一个 email 和 name 键并且它们是正确的吗?
  • @user3693134 阅读 damonkohler.com/2008/12/email-injection.html stackoverflow.com/questions/1055460/… 除非您希望垃圾邮件发送者典当您的服务器

标签: php html


【解决方案1】:

您没有定义表单操作。试试这个:

<form id="contactMe" name="contact" method="post" action="mailer.php" novalidate="novalidate">

默认情况下,除非另有说明,否则表单将提交到其当前位置。在您的情况下,将其指向您的邮件脚本所在的位置

【讨论】:

    猜你喜欢
    • 2017-03-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多