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

Кодировка письма. Приходят квадратики

13.07.2013, 10:44. Показов 8273. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую! Такая проблема:
Кодировка файла UTF-8
Из него отправляется e-mail,
в headers указано 'Content-Type: text/html; charset=utf-8\r\n'
В теле письма указано
HTML5
1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Данные берутся из базы, перед запросами обозначено:
PHP
1
mysql_query("SET NAMES utf8");
На почту приходят квадратики
p.s. Это оригинал скрипта SkyMag, файл d.php, отправка уведомления о заказе (http://skyscript.ru).

Помогите пожалуйста решить проблемку, заранее спасибо за уделенное время!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.07.2013, 10:44
Ответы с готовыми решениями:

Отправка письма php. Письма со скрипта на локальном сервере (Denwer) не приходят на почту.
Доброго Времени Суток!!! Я запускаю Денвером php скрипт со следующим кодом &lt;?php $name=$_GET; $email=$_GET; $tel=$_GET; ...

Не приходят письма на Outlook
Ребята, помогите! Пытаюсь использовать обычную функцию mail() для отправки писем. Все хорошо, без проблем созданные письма доходят на такие...

Не приходят письма на mail.ru
Не приходят письма на маил, меняю на яндекс почту все приходит как надо, в чем может быть проблема? $name =...

8
1 / 1 / 0
Регистрация: 03.07.2013
Сообщений: 40
13.07.2013, 10:56
открой через блокнот свой php файл, выбери "сохранить как" затем посмотри в правом нижнем углу кодировку, наверняка там не UTF
0
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 25
13.07.2013, 13:43  [ТС]
Цитата Сообщение от p0is0n Посмотреть сообщение
открой через блокнот свой php файл, выбери "сохранить как" затем посмотри в правом нижнем углу кодировку, наверняка там не UTF
Я все делаю через PHP Expert Editor, и там для этого файла стоит UTF

Добавлено через 2 часа 12 минут
Помогите плиз! Ниже приведу весь код:

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
//оформить заказ
if ($a=='ofzak') 
{   
$user_reg = globper('user_reg');
$user_login = globper('user_login');
$user_tel = globper('user_tel');
$user_fax = globper('user_fax');
$user_email = globper('user_email');
$user_gorod = globper('user_gorod');
$user_obl = globper('user_obl');
$zak_prim = globper('zak_prim');
if(empty($user_reg) && empty($user_login)) { $error[user_email] = 'Введите своё фамилие имя отчество'; exit(json_encode($error)); }
if(empty($user_tel) && empty($user_email) && empty($user_reg)) { $error[user_email] = 'Введите телефон или e-mail для связи с Вами'; exit(json_encode($error)); }
if (empty($user_reg)){
    mysql_query("SET NAMES utf8");
    $skybaseuser = mysql_query("SELECT `user_id` FROM `skyusers` WHERE `user_email`='{$user_email}' LIMIT 1",$db) or die(mysql_error());
    if (mysql_num_rows($skybaseuser) > 0)
        {   
        $skyrowuser = mysql_fetch_array($skybaseuser);
            $skybase = mysql_query("UPDATE `skyusers` SET `user_tel`='{$user_tel}',`user_fax`='{$user_fax}',`user_gorod`='{$user_gorod}',`user_obl`='{$user_obl}' WHERE `user_email`='{$user_email}'",$db) or die(mysql_error());
        $user_id = $skyrowuser['user_id'];
        }
    else{
        $user_ip = $_SERVER['REMOTE_ADDR'];
        $skydob = mysql_query ("INSERT INTO `skyusers` (`user_email`,`user_login`,`user_tel`,`user_fax`,`user_gorod`,`user_obl`,`user_vizit`,`user_prava`,`user_ip`) 
    VALUES ('{$user_email}','{$user_login}','{$user_tel}','{$user_fax}','{$user_gorod}','{$user_obl}','{$vrem}','0','{$user_ip}')",$db) or die(mysql_error());
        $skybaseuser = mysql_query("SELECT `user_id` FROM `skyusers` WHERE `user_email`='{$user_email}' LIMIT 1",$db) or die(mysql_error());
        $skyrowuser = mysql_fetch_array($skybaseuser);
        $user_id = $skyrowuser['user_id'];
        }
    $msg='<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head><body>
    В интернет магазин  — 
    <a title="перейти" href="http://'.$_SERVER['SERVER_NAME'].'">'.$_SERVER['SERVER_NAME'].'</a> <br />
    поступил новый заказ от пользователя: <strong>'.$user_login.'</strong> (не зарегистрирован)<br />
    <i>Данные пользователя:<br />
    <strong>E-mail:</strong> '.$user_email.'<br />
    <strong>Телефон:</strong> '.$user_tel.'<br />
    <strong>Факс:</strong> '.$user_fax.'<br />
    <strong>Город:</strong> '.$user_gorod.'<br />
    <strong>Адрес:</strong> '.$user_obl.'<br />
    </i>';
    }
else {
    mysql_query("SET NAMES utf8");
    $skybase = mysql_query("UPDATE `skyusers` 
                SET `user_tel`='{$user_tel}',`user_fax`='{$user_fax}',`user_gorod`='{$user_gorod}',`user_obl`='{$user_obl}'  
                WHERE `user_id`='{$_SESSION['ses_user']}'",$db) or die(mysql_error());
    $skybaseuser = mysql_query("SELECT * FROM `skyusers` WHERE `user_id`='{$_SESSION['ses_user']}' LIMIT 1",$db) 
    or die(mysql_error());  
    $skyrowuser = mysql_fetch_array($skybaseuser);  
    $msgadm='<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
                </head><body>
                В интернет магазин  — 
                <a title="перейти" href="http://'.$_SERVER['SERVER_NAME'].'">'.$_SERVER['SERVER_NAME'].'</a> <br />
                поступил новый заказ от пользователя: <strong>'.$skyrowuser['user_login'].'</strong><br />
                <i>Данные пользователя:<br />';
    $msguser='<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
                </head><body>
                Вами совершен заказ в интернет магазине  — 
                <a title="перейти" href="http://'.$_SERVER['SERVER_NAME'].'">'.$_SERVER['SERVER_NAME'].'</a> <br />
                
                <i>Ваши контактные данные:<br />';          
                
                
    $msg='<strong>E-mail:</strong> '.$skyrowuser['user_email'].'<br />
                <strong>Телефон:</strong> '.$skyrowuser['user_tel'].'<br />
                <strong>Факс:</strong> '.$skyrowuser['user_fax'].'<br />
                <strong>Город:</strong> '.$skyrowuser['user_gorod'].'<br />
                <strong>Адрес:</strong> '.$skyrowuser['user_obl'].'<br />
                <strong>Дополнительно:</strong> '.$skyrowuser['user_osebe'].'</i>';
        $user_id=$_SESSION['ses_user'];     
    }
    $headers=null;
    $headers.='Content-Type: text/html; charset=utf-8\r\n';
    $headers.='From: SkyScript.ru@SkyMail.v2\r\n';
    $headers.='X-Mailer: SkyMail\r\n';
    $massivKorz = explode(",", $_COOKIE["korzina"]);
    $msg.='<br /><br /><i>Заказ:</i><br /><table border="0" cellpadding="5" cellspacing="0">
    <tr>
    <td bgcolor="#ffffff" width="25" class="sm2" align="center">№</td>
    <td bgcolor="#ffffff" class="sm2" align="center">название</td>
    <td bgcolor="#ffffff" class="sm2" width="70" align="center">количество</td>
    <td bgcolor="#ffffff" class="sm2" align="center">цена</td>
    </tr>';
    for ( $i=0; $i<count($massivKorz)-1; $i++) 
    {
    $korz = explode(":", $massivKorz[$i]);
    $skybasetov = mysql_query("SELECT * FROM `skycat_tov` WHERE `tov_id`='{$korz[0]}' LIMIT 1",$db) 
    or die(mysql_error());
    $skyrowtov = mysql_fetch_array($skybasetov);
    $tov_nazv = $skyrowtov['tov_nazv'];
    if (strlen($tov_nazv) > 80) { $tov_nazv = substr("$tov_nazv", 0, 80); $tov_nazv = $tov_nazv."..."; }
    $msg.='<tr><td align="center">'.($i+1).'</td>
    <td><a href="http://'.$_SERVER['SERVER_NAME'].'/skycat.php?mod=cat&cat_id='.$skyrowtov['tov_cat'].'&tov_id='.$skyrowtov['tov_id'].'">'.$tov_nazv.'</a></td>
    <td align="center">'.$korz[1].'</td>
    <td align="center">'.$korz[2].'</td>
    </tr>';
    $vsego+=$korz[2]*$korz[1];
    }
    $vsego = number_format($vsego, 2, '.', '');
    $msg.='<tr><td bgcolor="#ffffff" colspan="3" align="right" height="40"><strong>Всего:</strong></td>
    <td bgcolor="#ffffff" align="center"><span id="totalPriceKorz">'.$vsego.'</span></td></tr>
    </table>';
    $msg.='<em>Примечание к заказу: <br />'.$zak_prim.'</em><br /><br /><br />
    <span class="sm">Это письмо было сгенерировано автоматически, отвечать на него не надо</span>
    <br /><br /><hr /><center>
    <a class="sm" target=_blank href=http://www.skyscript.ru>Скрипт разработан SkyScript</a>
    </center></body></html>';
    mail($adm_email, 'Заказ с сайта — '.$_SERVER['SERVER_NAME'], $msgadm.$msg, $headers);
    mail($user_email, 'Ваш заказ на сайте — '.$_SERVER['SERVER_NAME'], $msguser.$msg, $headers);
    $zakazano = $_COOKIE["korzina"];
    $skydob = mysql_query ("INSERT INTO `skymag_zak` (`zak_ot`,`zak_tov`,`zak_data`,`zak_prim`) 
    VALUES ('{$user_id}','{$zakazano}','{$vrem}','{$zak_prim}')",$db) or die(mysql_error());
    setcookie('korzina', '', 0, "/");
} //завершение оформить заказ
0
0 / 0 / 0
Регистрация: 16.07.2013
Сообщений: 7
16.07.2013, 18:00
Цитата Сообщение от allasan-1 Посмотреть сообщение
Кодировка письма. Приходят квадратики
приходят квадратики в теле письма или в теме?
0
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 25
17.07.2013, 16:53  [ТС]
Цитата Сообщение от BestDrug Посмотреть сообщение
приходят квадратики в теле письма или в теме?
В теле. в теме все ок

Добавлено через 21 час 42 минуты
Помогите пожалуйста!
0
 Аватар для m1ndgr3p
23 / 23 / 1
Регистрация: 31.05.2013
Сообщений: 108
17.07.2013, 18:30
Цитата Сообщение от allasan-1 Посмотреть сообщение
В теле. в теме все ок

Добавлено через 21 час 42 минуты
Помогите пожалуйста!
У тебя название столбцов нормально отображаются? Если да - это траблы с кодировкой в бд, если нет - посмотри какая кодировка страницы(или кодировка в какой отображает браузер) в которой ты просматриваешь входящее письмо. Есть вариант, что кодировка у почтовика отличается от кодировки в письме.
0
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 25
17.07.2013, 19:47  [ТС]
Цитата Сообщение от m1ndgr3p Посмотреть сообщение
если нет - посмотри какая кодировка страницы(или кодировка в какой отображает браузер) в которой ты просматриваешь входящее письмо. Есть вариант, что кодировка у почтовика отличается от кодировки в письме.
Именно так. В браузере - автоматическо определение. для почтовика определяет win 1251, естественно письмо в utf 8 не отображается нормально. Как можно сделать, чтобы письмо приходило в cp1251, если кодировка самого файла, который отправляет письмо - utf?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
17.07.2013, 20:39
Цитата Сообщение от allasan-1 Посмотреть сообщение
PHP
1
2
mail($adm_email, 'Заказ с сайта — '.$_SERVER['SERVER_NAME'], $msgadm.$msg, $headers);
mail($user_email, 'Ваш заказ на сайте — '.$_SERVER['SERVER_NAME'], $msguser.$msg, $headers);
а если так?
PHP
1
2
mail($adm_email, '=?UTF-8?B?'.base64_encode('Заказ с сайта — '.$_SERVER['SERVER_NAME']).'?=', $msgadm.$msg, $headers);
mail($user_email, '=?UTF-8?B?'.base64_encode('Ваш заказ на сайте — '.$_SERVER['SERVER_NAME']).'?=', $msguser.$msg, $headers);
Добавлено через 2 минуты
Цитата Сообщение от allasan-1 Посмотреть сообщение
PHP
1
2
3
$headers.='Content-Type: text/html; charset=utf-8\r\n';
$headers.='From: SkyScript.ru@SkyMail.v2\r\n';
$headers.='X-Mailer: SkyMail\r\n';
либо так
PHP
1
2
3
$headers.="Content-Type: text/html; charset=utf-8\r\n";
$headers.="From: SkyScript.ru@SkyMail.v2\r\n";
$headers.="X-Mailer: SkyMail\r\n";
либо так
PHP
1
2
3
$headers.='Content-Type: text/html; charset=utf-8' . "\r\n";
$headers.='From: SkyScript.ru@SkyMail.v2' . "\r\n";
$headers.='X-Mailer: SkyMail' . "\r\n";
и неплохо было бы добавить еще и MIME-Version
1
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 25
18.07.2013, 09:18  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
а если так?
PHP
1
2
mail($adm_email, '=?UTF-8?B?'.base64_encode('Заказ с сайта — '.$_SERVER['SERVER_NAME']).'?=', $msgadm.$msg, $headers);
mail($user_email, '=?UTF-8?B?'.base64_encode('Ваш заказ на сайте — '.$_SERVER['SERVER_NAME']).'?=', $msguser.$msg, $headers);
Добавлено через 2 минуты

либо так
PHP
1
2
3
$headers.='Content-Type: text/html; charset=utf-8' . "\r\n";
$headers.='From: SkyScript.ru@SkyMail.v2' . "\r\n";
$headers.='X-Mailer: SkyMail' . "\r\n";
и неплохо было бы добавить еще и MIME-Version
СПАСИБО!!!! Вот это поменял и все заработало!!! ) О великий супер-модератор )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.07.2013, 09:18
Помогаю со студенческими работами здесь

Приходят письма с кракозябрами
Есть контактная форма и с нее письма приходят в таком виде: Сам сайт имеет кодировку windows-1251, как сделать что бы норм письма...

Не приходят письма на mail.ru
Не понимаю в чем дело. На яндекс письма приходят, а вот на мail нет. Что за конфиг необходимо править? function maill($to, $title,...

Не приходят письма на mail.ru
Здравствуйте! вот такая проблема на сайте есть форма обратной связи и php который должен отправлять письмо мне на mail.ru, но письма не...

Письма не приходят на почту
Здравствуйте, письма с информации с формы отправки не приходят на почту, вне зависимости какая почта указывается, сам код работает, вся...

Отправка Email. Письма не приходят.
Как правельно отправлять почту на PHP? пробую: if ($stmt-&gt;execute()) { while ($row = $stmt-&gt;fetch()) { ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru