@ligisayan

Почему при отправке формы на почту приходят неформатируемые данные?

Всем привет! Интересует вопрос: почему при отправке формы на почту приходят данные в неформатируемом виде (в одну строчку) и как это исправить?
<?php
// check if fields passed are empty
if(empty($_POST['name']) || empty($_POST['message']) || empty($_POST['email']))
   {
echo "Не переданы данные!";
return false;
   }

$name = $_POST['name'];
$message = $_POST['message'];
$email = $_POST['email'];

// create email body and send it 
$to = 'aomeone@some.ru'; // put your email
$email_subject = "Вопрос с сайта some.ru";
$email_body = "Заполнена форма \"Задать вопрос\" \n\r".
 "Данные отправителя\r\nИмя: $name\r\n".
 "Email: $email \r\n".
 "Вопрос: $message";

$headers  = "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: info@some.ru \r\n";
$headers .= "Reply-To: $email"; 
mail($to, '=?UTF-8?B?'.base64_encode($email_subject).'?=',$email_body,$headers);
return true; 
?>
  • Вопрос задан
  • 202 просмотра
Решения вопроса 1
@newpy
web-dev
Ну так отформатируйте в виде HTML, и еще мой вам совет, отучитесь раз и навсегда в двойных кавычках писать переменные
"Данные отправителя\r\nИмя: $name \r\n"
Не ленитесь строки конкатенировать
"Данные отправителя \r\n Имя: " . $name . "\r\n"

$email_body = '<h4>Заполнена форма</h4>
<div>Задать вопрос</div>
<p>Данные отправителя</p>
<p>Имя: ' . $name . '</p>
<p>Email: ' . $email . '</p>
<p>Вопрос: ' . $message . '</p>';


Если лень так HTML составлять, воспользуйтесь str_replace например. Получитеся что-то вроде своего шаблонизатора.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы