PHP mail()联系表单未提供给Gmail - 需要建议

时间:2010-10-20 16:17:49

标签: php linux apache email

我正在使用PHP联系表单并且它正在向非gmail地址发送邮件,但是当我将其设置为发送到gmail地址时,它不会被传递(它甚至不会出现在垃圾邮件中)

之前我听说过这样的问题 - 我不是网络开发人员/专家,所以任何人都可以建议我的PHP联系表单的代码/配置更改,这实际上意味着邮件会传递到gmail地址吗?

我在linux / WHM专用服务器上。

<?php
error_reporting(E_NOTICE);

function valid_email($str)
{
    return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
}

if(!empty($_POST['name']) && !empty($_POST['email']) && valid_email($_POST['email']) === true && !empty($_POST['comment']))
{


    $to = "contactform@gmail.com";
    $headers =     'From: '.$_POST['email'].''. "\r\n" .
            'Reply-To: '.$_POST['email'].'' . "\r\n" .
            'X-Mailer: PHP/' . phpversion();
    $subject = "Contact Form";
    $message = htmlspecialchars($_POST['comment']);

    if(mail($to, $subject, $message, $headers))
    {
        echo 1; //SUCCESS
    }
    else {
        echo 2; //FAILURE - server failure
    }
}
else {
    echo 3; //FAILURE - not valid email
}
?> 

2 个答案:

答案 0 :(得分:0)

您是否检查过您的PHP安装/服务器是否支持Mail()函数?

您是否也检查过Gmail是否将您的电子邮件视为垃圾邮件? (它们不会出现在垃圾邮件文件夹中,它们只是被阻止了)...尝试将其发送到不同的地址。

答案 1 :(得分:0)

将脚本设置为从具有实际邮箱的电子邮件地址发送,以便检查跳出。如果你的脚本回显1,并且可以发送到其他地址(至少对我来说),那就是gmail不喜欢你,而不是脚本本身的任何错误。

看起来您还需要考虑保护此脚本不受电子邮件注入的影响。只是一个建议。