【问题标题】:php mail not receiving the message [duplicate]php邮件未收到消息[重复]
【发布时间】:2016-07-20 21:03:58
【问题描述】:

我没有收到来自表单域的文本。我做错什么了吗?

<?php
$newsletter_email = $_POST['newsletter_email'];
$to = "gb@gyde.asia";
$subject = "Subscription for Newsletter";
$headers = "From: $to";
mail ($to, $subject, " E-mail: " . $newsletter_email, $headers);
if(mail ($to, $subject, " E-mail: " . $newsletter_email, $headers )){ 
echo "Mail did its job..."; } else { echo "Oops, something went South!";  }
?>

HTML

    <div id="newsletter" class="form-wrap"> 
        <form action="process.php" method="post" id="newsletter-form"> 
            <input type="text" name="newsletter_email" id="newsletter_email" required class="feedback-input" maxlength="30" placeholder="Email" /> 
            <input type="submit" name="newsletter_submit" id="newsletter_submit" value="Subscribe" class="button-blue"/> 
        </form> 
    </div> 

【问题讨论】:

  • 检查垃圾邮件箱,顺便说一下,您会发送两次电子邮件
  • @HankyPanky 我收到了电子邮件,但没有收到表单中的文本。
  • 那么您可能没有正确发布它。我们可以看看你的 HTML 吗?
  • POST 在哪里?

标签: php html email email-validation


【解决方案1】:

您的脚本很好,但您发送邮件两次。 发送前检查POST 是否有消息要发送。 改成这样:

$newsletter_email = $_POST['newsletter_email'];
if($newsletter_email != ""){
    $to = "gb@gyde.asia";
    $subject = "Subscription for Newsletter";
    $headers = "From: $to";
    if(mail ($to, $subject, " E-mail: " . $newsletter_email, $headers ))
    { 
         echo "Mail did its job..."; 
    } 
    else 
    { 
         echo "Oops, something went South!"; 
    }
}

注意。检查您的垃圾邮件箱,如 Hanky Panky

【讨论】:

  • 它仍然没有收到来自表单域的文本。但是是的,我发送了两次。 $newsletter_email 不起作用,有什么建议吗?
  • @AneequeAhmed - 我正在查看 $email_newsletterHTML 但在我看来完全正确
  • 我用的是namecheap主机,他们的邮件功能不一样。
【解决方案2】:

有时邮件功能不支持您的服务器。所以邮件无法到达。

有一个解决方案请使用 SMTP 邮件。

<?php
    ini_set("SMTP", "aspmx.l.google.com");
    ini_set("sendmail_from", "YOURMAIL@gmail.com");

    $message = "The mail message was sent with the following mail setting:\r\nSMTP = aspmx.l.google.com\r\nsmtp_port = 25\r\nsendmail_from = YourMail@address.com";

    $headers = "From: YOURMAIL@gmail.com";


    mail("Sending@provider.com", "Testing", $message, $headers);
    echo "Check your email now....<BR/>";
?>

【讨论】:

    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 2015-05-05
    相关资源
    最近更新 更多