2015-09-07 2 views
0

Ниже приведен код основного email function.script. Он фактически использует форму на веб-сайте, чтобы установить переменные в приведенном выше скрипте, чтобы отправить электронное письмо. Но он не работает отлично, пожалуйста, помогите мне исправить это!Функция электронной почты PHP не работает

<?php 
//if "email" variable is filled out, send email 
    if (isset($_REQUEST['email'])) { 

    //Email information 
    $admin_email = "[email protected]"; 
    $email = $_REQUEST['email']; 
    $subject = $_REQUEST['subject']; 
    $comment = $_REQUEST['comment']; 

    //send email 
    mail($admin_email, "$subject", $comment, "From:" . $email); 

    //Email response 
    echo "Thank you for contacting us!"; 
    } 

    //if "email" variable is not filled out, display the form 
    else { 
?> 

<form method="post"> 
    Email: <input name="email" type="text" /><br /> 
    Subject: <input name="subject" type="text" /><br /> 
    Message:<br /> 
    <textarea name="comment" rows="15" cols="40"></textarea><br /> 
    <input type="submit" value="Submit" /> 
    </form> 

<?php 
    } 
?> 
+0

Действительно ли это работает? перепроверьте свой код, соответствующий –

+1

почте ($ admin_email, $ subject, $ comment, $ email); и использовать заголовок может быть он работает –

+1

Что говорят журналы вашего почтового сервера? Я не уверен, повлияет ли это на это или нет, но у вас нет пробела между заголовком 'From' и его значением. – Mike

ответ

3

Попробуйте это: добавьте заголовок в свой код.

//if "email" variable is filled out, send email 
if (isset($_REQUEST['email'])) { 

//Email information 
$admin_email = "[email protected]"; 
$email = $_REQUEST['email']; 
$subject = $_REQUEST['subject']; 
$comment = trim($_REQUEST['comment']); 

$headers = 'From:' .$email. "\r\n" . 
            'Reply-To: [email protected]' . "\r\n" . 
            'MIME-Version: 1.0' . "\r\n" . 
            'Content-type: text/html; charset=iso- 8859-1' . "\r\n" . 
            'X-Mailer: PHP/' . phpversion(); 

    //send email 
    $result = mail($admin_email, $subject, $comment, $headers); 

    //Email response 
    if($result) 
    echo "Thank you for contacting us!"; 
    else 
    echo "Something went wrong."; 
    } 
+0

Спасибо за помощь, ее workig :) –

0

Попробуйте

mail($admin_email, $subject, $comment, "From:" . $email);

+0

Как это заставило бы его работать? Все, что вы сделали, это удалить ненужные, но незначительные двойные кавычки. – Mike

0

Какой сервер/среду, что вы работаете на?

Если это Linux/Ubuntu. Это может быть связано с отсутствием библиотеки. Попробуйте установить его, используя следующую команду.

apt-get install sendmail 

Но некоторые журналы/выходные данные были бы приятными. Предоставляет ли программа какие-либо ошибки/исключения?

+0

Спасибо за помощь, ее заставка Linux –

0

Попробуйте Как это:

// отправлять электронную почту

mail($admin_email, $subject, $comment, "From:" . $email); 

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

+0

Спасибо за помощь :) –

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