【问题标题】:PHP mail() contact form not delivering to Gmail - advice neededPHP mail() 联系表未发送到 Gmail - 需要建议
【发布时间】:2010-10-20 16:17:49
【问题描述】:

我正在使用 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
}
?> 

【问题讨论】:

标签: php linux apache email


【解决方案1】:

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

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

【讨论】:

  • 我确实发送到了不同的地址并且它有效 - 所以这就是我想要解决的问题。
【解决方案2】:

将您的脚本设置为从在某处具有实际邮箱的电子邮件地址发送,以便您检查退回邮件。如果您的脚本回显 1,并且可以发送到它建议的其他地址(至少对我而言),那是 gmail 不喜欢您,而不是脚本本身有任何问题。

您似乎还需要考虑保护此脚本免受电子邮件注入。只是一个建议。

【讨论】:

  • 我怎样才能保护这个脚本免受电子邮件注入?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-24
  • 2016-08-22
  • 1970-01-01
  • 2012-08-23
  • 2013-12-10
  • 1970-01-01
相关资源
最近更新 更多