2015-01-19 2 views
1

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

<?php 

if ($_POST["email"]<>'') { 

$ToEmail = '[email protected]'; 

$EmailSubject = 'Site contact form'; 

$mailheader = "From: ".$_POST["email"]."\r\n"; 

$mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 

$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 

$MESSAGE_BODY = "Name: ".$_POST["name"].""; 

$MESSAGE_BODY .= "Email: ".$_POST["email"].""; 

$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"]).""; 

mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die 

("Failure"); 

?> 

    Your message was sent 

    <?php 

    } else { 

?> 

<form action="test.php" method="post"> 

<table width="400" border="0" cellspacing="2" cellpadding="0"> 

<tr> 

<td width="29%" class="bodytext">Your name:</td> 

<td width="71%"><input name="name" type="text" id="name" size="32"></td> 

</tr> 

<tr> 

<td class="bodytext">Email address:</td> 

<td><input name="email" type="text" id="email" size="32"></td> 

</tr> 

<tr> 

<td class="bodytext">Comment:</td> 

    <td><textarea name="comment" cols="45" rows="6" id="comment"  
    class="bodytext"> 

    </textarea></td> 

     </tr> 

     <tr> 

    <td class="bodytext"> </td> 

<td align="left" valign="top"><input type="submit" name="Submit"  

    value="Send"> 

    </td> 

</tr> 

</table> 

    </form> 

    <?php 

    }; 

    ?> 
+0

Так что же происходит? Он умирает? Или отображается сообщение «отправлено», но почта не приходит? –

+0

, когда я нажимаю кнопку «Отправить», отображается сообщение «ваше сообщение отправлено», но когда я проверяю свою учетную запись электронной почты, нет такого адреса электронной почты. – abc

+0

. Это общедоступный хостинг? Или это ваш сервер? Это linux или windows? Не гарантируется, что 'mail()' отправит электронное письмо. он должен быть настроен правильно, чтобы сделать это –

ответ

0

вы посылаете электронную почту к varible вы определили ранее, $ToEmail. Измените значение этой переменной на значение, которое у вас есть в вашей форме.

Try:

if ($_POST["email"]<>'') { 

$ToEmail = $_POST['email']; 

$EmailSubject = 'Site contact form'; 

$mailheader = "From: [email protected]\r\n"; 

$mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 

$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 

$MESSAGE_BODY = "Name: ".$_POST["name"].""; 

$MESSAGE_BODY .= "Email: ".$_POST["email"].""; 

$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"]).""; 
+0

Спасибо ... я редактирую свой код с вашего, но его по-прежнему не отправляет электронную почту ... – abc

0

Попробуйте использовать $ mailheader = "From: админ @ имя_домена"; например, электронная почта от asd.com должна иметь $ mailheader = "From: [email protected]"; аналогично электронная почта от stackoverflow.com должна иметь $ mailheader = "From: [email protected]"; для аутентичной отправки электронной почты. В некоторых случаях недопустимый заголовок электронной почты приводит к сбою отправки электронной почты.

+0

В моем случае я должен написать $ mailheader = "From: [email protected]" ; ??? – abc

+0

см. Обновление выше. –

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