2013-11-22 3 views
0

Я пытаюсь получить детали контактной информации через почту. Но не удалось сделать это с помощью функции mail(). вот мой код.Невозможно отправить почту с помощью функции mail() в php

if(isset($_POST['rqsubmit'])) { 
    $name = htmlspecialchars($_POST['Field1']); 
    $email = trim($_POST['Field2']); 
    $phone = trim($_POST['Field3']); 
    $msg = strip_tags($_POST['Field4']); 
    //echo $name." ".$phone." ".$email." ".$msg; 
    $to = '[email protected]'; 
    //$from = $email; 
    $subject = "Software Development"; 
    $message = "Name:".$name."<br/>Phone".$phone."<br/>Message:".$msg; 
    //echo $message; 
    $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
//echo $message;  
$headers = "From: [email protected]". "\r\n". 
      'Reply-To: [email protected]' . "\r\n" . 
      'X-Mailer: PHP/' . phpversion();  
$headers .= "\nMIME-Version: 1.0\n" . 
"Content-Type: multipart/mixed;\n" . 
" boundary=\"{$mime_boundary}\"";  
    $ok = @mail($to, $subject, wordwrap($message, 70, "\r\n"), $headers); 
    if ($ok) { 
     echo "<p>Thank you for contacting us! !!</p>"; 
    } else { 
     echo "<p>Mail could not be sent. Sorry!</p>"; 
    } 
} else { 
    echo "mail not sent"; 
} 

Я хотел бы знать, где я иду не так. Любая помощь будет высоко оценена. Спасибо!

+0

Какая ошибка возникла? – Bhadra

+2

В качестве первого шага удалите оператор ошибки ('@') из вашего кода и посмотрите, не выдает ли он каких-либо ошибок. –

+0

Это ошибка: «Почта не была отправлена. Извините, удалил тоже @ – rgk

ответ

0

Add: 'X-Mailer: PHP /'. phpversion(); до: $ headers

+0

И это потому, что. ..? – Babblo

0

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

Вставьте свой адрес электронной почты в заголовок From: и добавьте заголовок Reply-To:, содержащий адрес отправителя.

Могу ли я просто указать, что вам необходимо тщательно проверить данные формы, прежде чем поместить его в электронное письмо. Например, я мог бы легко отправить электронные письма по всему месту, установив Field2 на что-то вроде [email protected]\nBcc: [email protected], [email protected], ....

EDIT: К сожалению, моя ошибка - вы сделал добавить From заголовок. Однако вполне вероятно, что ваш почтовый сервер настроен на отклонение писем, в которых адрес отправителя не указан в списке одобренных отправителей. Вот почему вам нужно поместить свой собственный адрес в заголовок From: и адрес отправителя в заголовок Reply-To:.

EDIT 2: Кроме того, что на земле вы делаете с $mime_boundary? Насколько я могу судить, вы не отправляете действительное сообщение MIME.

+0

Нет проблем с данными формы. Я проверил это, повторив. Пожалуйста, проверьте код, который я редактировал, и все еще не могу отправить почту. – rgk

+0

Его ошибка. Я забыл обновить значение action = "" на странице, где форма Спасибо всем за то, что помогли мне. Наконец, можно отправить почту. – rgk

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