Не переносится строка в коде php

234
20 мая 2017, 20:28

Есть простенький код. На почту приходит $message в одну строку.

$method = $_SERVER['REQUEST_METHOD'];
$name = trim($_POST["name"]);
$email  = trim($_POST["email"]);
$admin_email = "mr.dvorezky@yandex.ru";
$subject = "Клиент хочет записаться на мастер-класс";
$message = "Имя клиента: " .$name. "\r\n".
"Электронная почта клиента: ".$email.PHP_EOL;
$headers = "MIME-Version: 1.0" . PHP_EOL .
"Content-Type: text/html; charset=utf-8" . PHP_EOL.
"From: ". $admin_email. PHP_EOL;
mail($admin_email, $subject, $message, $headers );
Answer 1

Стоит отметить, что письма можно писать в HTML формате, включая форматирование и стилизацию.

Как следствие - для переноса строки в данном вопросе следует заменить \r\n на <br>.

К слову, сервисов для создания шаблонов HTML писем очень много. Например:

  • https://beefree.io/
  • https://www.inkbrush.com/
  • https://mosaico.io/
Answer 2

Поскольку вы указали

Content-Type: text/html; charset=utf-8

То письмо форматируется как html, те, переносы строк образуются тегами: <p>, <br> и т.д. Кроме того используются все html-теги, вы можете вставить в письмо изображения, таблицы и т.д.

Если вы хотите все-таки обычный текст, то тогда надо писать:

Content-Type: text/plan; charset=utf-8

Тогда переносы строк сохранятся, а теги не будут преобразованы.

READ ALSO
Как вывести static переменную из функции?

Как вывести static переменную из функции?

Хочу чтобы переменная возвращала количество вызовов функции

294
Генератор уникальных ID

Генератор уникальных ID

Нужен код генератора уникальных IDПоискал в интернете

243
&#39;-&#39; в названии папок и namespace

'-' в названии папок и namespace

В моем проекте между словами в названиях папок есть '-'Т

196
Изменить параметры в UDP socket PHP

Изменить параметры в UDP socket PHP

При посылке UDP пакета через socket требуется изменить внутренние параметры Version Type Pap/Chap Rsv UserIp AttrNum

224