联系人表单处理程序突然不向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收件箱中

不管怎样,谢谢你的想法,它帮助我缩小了可能的错误列表。