PHP mail () контактная форма не доставляет в Gmail - нужен совет - PullRequest
2 голосов
/ 20 октября 2010

Я использую контактную форму PHP, и она отправляет почту не на адреса Gmail, однако, когда я настраиваю ее на отправку на адрес Gmail, она не доставляется (она даже не появляется в нежелательной почте) .

Я слышал о подобных проблемах раньше - я не веб-разработчик / эксперт, поэтому кто-нибудь может предложить изменения кода / конфигурации в мою контактную форму PHP ниже, что, по сути, означало бы, что сообщения доставляются на адреса электронной почты?

Я на выделенном сервере 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 голосов
/ 20 октября 2010

Настройте свой сценарий так, чтобы он отправлялся с адреса электронной почты, на котором есть настоящий почтовый ящик, чтобы вы могли проверять наличие отказов. Если ваш скрипт повторяет 1 и может отправлять на другие адреса, он предполагает (по крайней мере мне), что вам не нравится gmail, а не что-то не так с самим сценарием.

Похоже, вам нужно защищать этот скрипт от внедрения электронной почты. Просто предложение, хотя.

0 голосов
/ 20 октября 2010

Вы проверили, поддерживает ли ваша установка / сервер PHP функцию Mail ()?

Также вы проверили, рассматривает ли Gmail ваши письма как спам? (они не отображаются в папке со спамом, они просто заблокированы) ... Попробуйте отправить его по другому адресу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...