繁体   English   中英

联系人表单处理程序突然不向Gmail发送电子邮件

[英]Contact form handler suddenly doesn’t send emails to Gmail

一年前,我做了一个“原始的” PHP联系人表单发送者,经过多次测试,它确实有效。 它只应将包含提交的电子邮件地址或电子邮件正文中包含的联系表单参数的电子邮件发送到Gmail帐户。

现在,在重新设计时,我回到了联系表格,对其进行了随机测试,并且它什么也没有发送。 没有错误消息,提交的表单从未像以前那样到达Gmail主收件箱。

<?php
$errors = '';
$myemail = 'x@gmail.com';
$noreply = 'x@y.com';

if (empty($_POST['email']))
{
    $errors .= "\n Error: Please provide an e-mail address where we can send the newsletter and special deals";
}

$email_address = $_POST['email'];

if (!preg_match(
    "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i",
    $email_address))
{
    $errors .= "\n Error: Invalid email address";
}

if (empty($errors))
{
    $to = $myemail;
    $email_subject = "Contact form submission: $email_address";
    $email_body = "You have received a newsletter signup. ".
        "Email: $email_address";

    $headers = "From: $noreply\n";
    $headers .= "Reply-To: $email_address";

    mail($to,$email_subject,$email_body,$headers);
    //redirect to the 'thank you' page
    header('Location: newsletter_submit.html');
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Contact form handler</title>
    </head>
    <body>
    <!-- This page is displayed only if there is some error -->
    <?php
    echo nl2br($errors);
    ?>
    </body>
</html>

它确实是通过该网站上的另一种类似形式发生的,我想知道代码是否有问题(本来可以运行一次)还是Gmail更改了某些内容。 我尝试将表单发件人电子邮件列入白名单,但是没有任何变化。

原来,我们的邮件服务器拒绝了相同域的电子邮件。 我将“ myemail”更改为gmail帐户,将“ noreply”更改为实际的“电子邮件服务器”邮件地址,然后表格又突然出现在gmail收件箱中。 -.-

无论如何,感谢您的想法,它帮助我缩小了可能的错误列表。

暂无
暂无

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

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