Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Flamme13
0 / 0 / 0
Регистрация: 03.01.2014
Сообщений: 26
1

Настройка mail() php

20.07.2014, 02:44. Просмотров 1238. Ответов 4
Метки нет (Все метки)

Уважаемые знатоки, подскажите как решить проблему.
Вот мой простой код, для отправки письма mail():

PHP
1
2
3
4
5
6
$mail = 'XXX@mail.ru';
$zag = 'Письмо с выключенного сайта';
$name = $_POST['name'];
$message = $_POST['message'];
 
mail("$mail", "$zag от $name", "<span style='font-weight:bold;'>Отправитель:</span> $name<hr><br><span style='font-weight:bold;'>Cообщение:</span><br>$message", "Content-Type: text/html; charset=UTF-8");
Проблема заключается в том, что после заполнения <textarea></textarea> - $message = $_POST['message']; я получаю на почту письмо, где все правильно отображается, но если пользователь в своем тексте делал абзацы, я этого не вижу. С каждого поля я получаю текст в одну строку.
Как сделать так, чтобы пользовательское форматирование текста мне было видно, а не все одной строкой.
Я предполагаю что проблема в кодировке, но не смог самостоятельно найти ответ.
Пожалуйста помогите.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2014, 02:44
Ответы с готовыми решениями:

PHP sendmail ($t=mail('my@mail.ru', 'tema', 'mess');) не отправляет
Надо из php mail отправить, пишу так: &lt;? $t=mail('my@mail.ru', 'tema', 'mess'); print $t; ?&gt; ...

Отправка письма на mail.ru через PHP mail()
Добрый день! Перелопатил много чего. Подскажите как все-таки отправить письмо на мэил.ру при помощи...

Настройка отправки почты через функцию mail
Добрый день! Не могу настроить отправку сообщений Подключение к БД есть, проверял значение...

Настройка php mail через sendmail. Где-то закралась ошибка?
Здравствуйте. Умаялся в попытках настроить отправку почты через локальный сервер Denwer. &quot;Contact...

Apache 2.4.6 + PHP 5.5.1 + PHP Extensions [Windows настройка]
Всем привет. Дело в том, что большинство людей пользуется Windows, но вот если попытаться сделать...

4
quwy
Native x86
3346 / 2193 / 649
Регистрация: 13.02.2013
Сообщений: 7,245
20.07.2014, 03:09 2
Раз уж вы отправляете сообщение в HTML-формате, то позаботьтесь о том, чтобы переносы строк были заменены на "<br>".

Если вкратце: поле ввода передает переносы строк (абзацы) в виде символов с кодами 13 и 10. Для HTML-рендерера эти символы эквивалентны пробелам. Перенос строки в HTML -- это тэг <br> или <br />. Так что заменяйте (ф-ция str_replace) все "\n" на "<br>" и будет вам счастье.

quwy

P.S. Тело сообщения вы формируете в корне неправильно. В принципе, работать это, наверное, будет, но некорректное сообщение -- это лишний повод для почтового сервиса отправить его в спам.
1
Flamme13
0 / 0 / 0
Регистрация: 03.01.2014
Сообщений: 26
20.07.2014, 05:10  [ТС] 3
Я понимаю что я совсем ничего не знаю о php =)
Могли бы вы привести мне пример как нужно оформлять правильно этот код.
И может можно установить другую кодировку, чтобы не пришлось писать функцию str_replace, если это конечно возможно.
Просто приведите пожалуйста пример, как бы вы написали этот код. Буду очень благодарен.

Добавлено через 1 час 20 минут
quwy, Наверное я что-то не так делаю, не получается заменить. Пожалуйста приведите рабочий пример для наглядности.
0
alexsamos33
655 / 627 / 333
Регистрация: 26.04.2014
Сообщений: 2,098
20.07.2014, 07:24 4
Лучший ответ Сообщение было отмечено Flamme13 как решение

Решение

Ну я бы написал примерно так:
PHP
1
2
3
4
5
6
7
8
9
$mail = 'XXX@mail.ru';
$zag = 'Письмо с выключенного сайта';
$name = $_POST['name'];
$name = htmlspecialchars($name);
$message = $_POST['message'];
$message = htmlspecialchars($message);
$message = str_replace("\n", "<br>", $message);
 
mail("$mail", "$zag от $name", "<span style='font-weight:bold;'>Отправитель:</span> $name<hr><br><span style='font-weight:bold;'>Cообщение:</span><br>$message", "Content-Type: text/html; charset=UTF-8");
P.S.
Цитата Сообщение от quwy
Тело сообщения вы формируете в корне неправильно. В принципе, работать это, наверное, будет, но некорректное сообщение -- это лишний повод для почтового сервиса отправить его в спам.
А подскажите что здесь неправильно? А то я тоже ничего не заметил...
1
Flamme13
0 / 0 / 0
Регистрация: 03.01.2014
Сообщений: 26
20.07.2014, 08:18  [ТС] 5
alexsamos33, Большое спасибо, теперь все работает как нужно!
0
20.07.2014, 08:18
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2014, 08:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

PHP mail()
Как может быть такое что одинаковые письма то приходят, то не приходят адресату? И сервер на сайте...

Mail from php
$headers = &quot;Content-type: text/html; charset=windows-1251 \r\n&quot;; $headers .= &quot;From: От кого...

PHP И Web MAIL
Всем привет! Совсем только-только начинаю программировать на php (читаю beginning php6, apache,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.