2013-09-09 4 views
0

Я использую форму контакта, и она сработала с этого момента. После нажатия «Отправить» я подтверждаю сообщение и ничего не происходит. Пример веб-мастера "[email protected]".Php форма не отправляет электронную почту на другой сервер

Этот код:

<?php 
    ini_set('default_charset', 'UTF-8'); 
    /* Subject and Email Variables */ 

$emailSubject = 'Wiadomosc z Formularza Kontaktowego ze strony WWW'; 
$webMaster = '[email protected]'; 
$headers .= "Content-type: text/html; charset=UTF-8"; 
    /* Gathering Data Variables*/ 

    $name = $_POST['name']; 
    $company = $_POST['company']; 
    $phone = $_POST['phone']; 
    $email = $_POST['email']; 
    $topic = $_POST['topic']; 
    $text = $_POST['text']; 

    if (empty($_POST['email'])) 
    { 
    echo 'error'; 
    exit; 
    } 
    if (empty($_POST['phone'])) 
    { 
    echo 'error'; 
    exit; 
    } 
    if (empty($_POST['name'])) 
    { 
    echo 'error'; 
    exit; 
    } 
    if (empty($_POST['text'])) 
    { 
    echo 'error'; 
    exit; 
    } 

$body = <<<EOD 

    Imię i Nazwisko: $name <br /> 
    Organizacja/Firma: $company <br /> 
    Numer telefonu: $phone <br /> 
    Email: $email <br /> 
    Temat: $topic <br /> 
    Wiadomość: $text <br /> 
    EOD; 

$headers = "From: $email\r\n"; 
$headers .= "Content-type: text/html; charset=utf-8\r\n"; 
$success = mail($webMaster, $emailSubject, $body, $headers); 

/* Results rendered as HTML */ 

$theResults = <<<EOD 
OK 




    EOD; 
    echo $theResults; 
    ?> 

это сервер? или что-то меня не хватает?

+1

Добавление данных из формы непосредственно в заголовок без дополнительной проверки - это действительно плохая идея, потому что кто-то может найти способ использовать ее для доставки спама. Вы что-то изменили? Если нет, возможно, вы уже там, где использовали для отправки спама и вашего сервера, были внесены в черный список или почтовый сервер-получатель начал выполнять проверки SPF. Но могут быть и другие причины (например, ваш хост остановился, чтобы поддерживать отправку писем через 'mail') –

ответ

0

Вы должны проверить, что mail() функция возвращает, распечатать $success

var_dump($success); 
die; 

увидеть, если это правда или ложь, если это правда, и вы не получаете электронную почту, то, возможно, это что-то неправильно на сервере, то это другая проблема, и вам нужна проблема при работе на сервере, который вы используете.

Смежные вопросы