Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 19

Кодировка в теле письма при отправке

05.04.2014, 14:12. Показов 4372. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам


Добрый день. У меня следующая проблема. Я отправляю письмо с помощью скрипта через сайт. Ни с одним ящиком нет проблем однако один из пользователей ярый жесткий поклонник mail.ru почтового ящика. К нему конечно же все приходит с явными проблемами в кодировке к примеру вот
по идее в этом месте должно быть написано Имя и оно отображаться должно на русском к примеру
Имя: Иван. Форма заполняется как я уже сказал на русском через сайт. Все на utf-8 и чтобы я не пробовал не помогает нормально раскодировать сообщение.
Вот сам код

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$name .='Content-Type: text/html; charset="utf-8"'."\n";
$name .="Content-Transfer-Encoding: 8bit\n";
if (!isset($_POST['name']) or empty($_POST['name'])) {
    $error1 = "Имя?<br />";
} else $error1 = NULL;
 
if (!isset($_POST['phone']) or empty($_POST['phone'])) {
    $error2 = "Phone?<br />";
} else $error2 = NULL;
 
if (empty($error1) and empty($error2) and empty($error3) and empty($error4)) {
    $name = $_POST['name'];
    $phone    = $_POST['phone'];
    $message = "Имя: {$name}\n\nphone: {$phone}\n\nurl:targetsite/new\n\n.url=".$_POST['url'];
 
    $to .= 'itargetmail@mail.ru';
    
 
    if (mail($to, $subject, $message)) {
        echo "Отправлено!";
    } else echo "Ошибка!";
} else {
    echo $error1.$error2.$error3.$error4;
}


что можно сделать?

Заранее спасибо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.04.2014, 14:12
Ответы с готовыми решениями:

Кодировка заголовка при отправке на почту письма
Доброе утро, подскажите, что не так с заголовком письма. Приходят вместо русских символов кракозябры, при этом с телом письма все...

Кодировка письма при отправке Формой обратной связи
Добрый вечер. Нашел на просторах форума простую &quot;форму обратной связи&quot; &lt;?php /** * Класс отправки почтовых сообщений функций mail() ...

Неправильная кодировка в теле письма
Здравствуйте, у меня такая проблема, юзеры получают письма вот в таком виде Ð'аш пароль был Ñброшен. Ðовый...

8
 Аватар для Бабуля
72 / 72 / 29
Регистрация: 10.08.2012
Сообщений: 202
05.04.2014, 14:27
Так пробовали?
PHP
1
$name = iconv("utf-8", "windows-1251", $name);
0
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 19
05.04.2014, 14:37  [ТС]
Спасибо за ответ но к сожалению, беда осталась та же(((( не помогает. Всеравно кодировка не та приходит.
0
 Аватар для Бабуля
72 / 72 / 29
Регистрация: 10.08.2012
Сообщений: 202
05.04.2014, 15:00
Ну я вот попробовал, у меня в нормальной кодировки
приходит на mail.ru, никаких кракозябр.
Может проблема на стороне вашего пользователя
0
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 19
05.04.2014, 15:03  [ТС]
Да нет я и у себя пользовался этим и с файрфокса. М а нет ли проблем на хостинге? Тоесть может проблема как раз у никхоста моего? Вы просто вверх дописали эту команду, правильно?
0
 Аватар для Бабуля
72 / 72 / 29
Регистрация: 10.08.2012
Сообщений: 202
05.04.2014, 15:16
Лучший ответ Сообщение было отмечено devilman666 как решение

Решение

Что-то я ступил... менять кодировку надо было не у имени, а
у сообщения, то есть у переменной $message, попробуйте так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$name .='Content-Type: text/html; charset="utf-8"'."\n";
$name .="Content-Transfer-Encoding: 8bit\n";
if (!isset($_POST['name']) or empty($_POST['name'])) {
    $error1 = "Имя?<br />";
} else $error1 = NULL;
 
if (!isset($_POST['phone']) or empty($_POST['phone'])) {
    $error2 = "Phone?<br />";
} else $error2 = NULL;
 
if (empty($error1) and empty($error2) and empty($error3) and empty($error4)) {
    $name = $_POST['name'];
    $phone    = $_POST['phone'];
    $message = "Имя: {$name}\n\nphone: {$phone}\n\nurl:targetsite/new\n\n.url=".$_POST['url'];    
    $message = iconv("utf-8", "windows-1251", $message); 
 
    $to .= 'itargetmail@mail.ru';
    
 
    if (mail($to, $subject, $message)) {
        echo "Отправлено!";
    } else echo "Ошибка!";
} else {
    echo $error1.$error2.$error3.$error4;
}
1
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 19
05.04.2014, 15:25  [ТС]
Чуть чуть не понял. Вот сейчас у меня вот так вот

PHP
1
2
3
4
5
6
7
8
9
10
$message = iconv("utf-8", "windows-1251", $name); 
$message .='Content-Type: text/html; charset="utf-8"'."\n";
$message .="Content-Transfer-Encoding: 8bit\n";
if (!isset($_POST['name']) or empty($_POST['name'])) {
    $error1 = "Имя?<br />";
} else $error1 = NULL;
 
if (!isset($_POST['phone']) or empty($_POST['phone'])) {
    $error2 = "Phone?<br />";
} else $error2 = NULL;
0
 Аватар для Бабуля
72 / 72 / 29
Регистрация: 10.08.2012
Сообщений: 202
05.04.2014, 15:28
Просто прямо перед отправкой сообщения
добавьте кодировку сообщения, которое отправляете,
сообщение хранится в переменной $message.

Значит перед отправкой сообщения добавьте
$message = iconv("utf-8", "windows-1251", $message);

Примерно вот так:

PHP
1
2
$message = iconv("utf-8", "windows-1251", $message);
if (mail($to, $subject, $message)) {
Вообщем после кодировки, никаких присвоений к переменной
$message не должно быть!

Надеюсь поможет=)
0
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 19
05.04.2014, 15:29  [ТС]
Получилось сделал прям один в один как у вас.
Спасибо большущее!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.04.2014, 15:29
Помогаю со студенческими работами здесь

При отправке письма тело письма $message не отображается
вот функция атачя $sfile - содержание файла function send($sfile,$filename) { $message = 'attach файил' $boundary...

Неполадки с кодировкой при отправке письма
Привет всем. делаю обратную связь, она нормально работает но приходит письмо и в место букв одни знаки вопроса у меня сам файл в utf-8 все...

При отправке письма с сайта, добавить логотип
Как добавить логотип к письму при отправке письма с сайта, через php...

При отправке письма, на почту приходяь иероглифы
Ф-ция mail() Вообщем поидее все просто, отправляю письмо на русскос языке, а получаю - абрукадабру. Перепробовал уже наверно всё что...

Кодировка при отправке на почту
Вечер добрый, отправляю на почту письмо и летит кодировка! Я уже все перетыкал перепробовал (( &lt;? header(&quot;Content-Type:...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru