powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Опять про кодировку при работе с mail() (много и подробно)
6 сообщений из 6, страница 1 из 1
Опять про кодировку при работе с mail() (много и подробно)
    #32836839
Samuels
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Более года у меня отлично работала конструкция, где данные из формы передавались в mail() в кодировке win-1251 и благополучно отсылались. Тема формировалась строкой, типа $subject = "ФОРМА"; В теле письма я спокойно писал строки, типа $message .= "Телефон: "; Чтобы mail-клиент потом автоматически корректно читал кодировку, в заголовок я писал $headers .= "Content-Type: text/plain; charset=\"Windows-1251\"\n"; Вчера инженеры на моем американческом хостинге что-то намудрили и все резко перестало работать. Теперь, когда я пытаюсь поставить в тему что-то на кирилице, то при отсылке это автоматически переводится в UTF-8 и становится напрочь нечитабельным. Более того, если тело письма содержит символы из кирилицы, то в заголовок автоматически добавляется 3 строки:
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: BASE64
Естественно, и все содержимое письма тоже переколбашивается в нечитабельный вид. При попытке что-то менять в заголовке, эти 3 строки добавляются в любом случае, что приводит к еще бОльшей путанице. Получается, что в заголовке одновременно присутствуют и Content-Type: text/plain; charset=UTF-8 и Content-Type: text/plain; charset="Windows-1251".
Теперь, когда я подробно описал ситуацию, главный вопрос: Каким образом можно отключить все эти новшества и заставить PHP отправлять почту в нужной мен кодировке? Откуда он вобще берет информацию о том в какой кодировке и что должно быть?
Если это поможет, то сообщаю, что PHP стоит 4.3.9 и Apache version 1.3.33 (Unix). Хостинг американческий виртуальный.
Заранее благодарен тем, кто попытается мне помочь.
...
Рейтинг: 0 / 0
Опять про кодировку при работе с mail() (много и подробно)
    #32836993
VERS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.php.net/manual/en/function.mail.php
надо еще и заголовок письма кодировать.
Там есть пример тому.
а в кратце, заголовок должен иметь следующий вид:

Код: plaintext
$subject = "=?".$charset."?".$encoding."?".$subject_text."?=";
...
Рейтинг: 0 / 0
Опять про кодировку при работе с mail() (много и подробно)
    #32837018
VERS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VERS http://www.php.net/manual/en/function.mail.php
надо еще и заголовок письма кодировать.
Там есть пример тому.
а в кратце, заголовок должен иметь следующий вид:

Код: plaintext
$subject = "=?".$charset."?".$encoding."?".base64_encode($subject_text)."?=";


Код: plaintext
$subject = "=?".$charset."?".$encoding."?".base64_encode($subject_text)."?=";
...
Рейтинг: 0 / 0
Опять про кодировку при работе с mail() (много и подробно)
    #32837219
Samuels
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VERS http://www.php.net/manual/en/function.mail.php
надо еще и заголовок письма кодировать.
Там есть пример тому.
а в кратце, заголовок должен иметь следующий вид:

Код: plaintext
$subject = "=?".$charset."?".$encoding."?".$subject_text."?=";


Спасибо. Эта штука коряво, но работает. А вот как быть с телом письма? Глобальная проблема по-прежнему не решена. Темы на английском я вполне переживу, это служебная информация, а вот юзеры всякое в фомы пишут по-русски. Вот тут основные сложности.
...
Рейтинг: 0 / 0
Опять про кодировку при работе с mail() (много и подробно)
    #32839233
Samuels
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблему я решил использованием mb_send_mail вместо mail. Однако, тут прорисовалась другая беда. Символы кирилицы не передаются в скрипт из формы. Латиница идет, а вот кирилические символы просто изымаются из строк бесследно. Если отправляется строка rrrяяяrrr, то в скрипт из $_POST["name"] приходит строка rrrrrr, т.е. кусок яяя просто пропадает бесследно.
Мне тут присоветовали добавить enctype="multipart/form-data" к заголовку формы, но это не помогло. Может кто знает, в чем тут проблема? Главное, что ранее все работало. Это хостер обновил PHP и начались все эти "приключения".
...
Рейтинг: 0 / 0
Опять про кодировку при работе с mail() (много и подробно)
    #32839481
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
SamuelsОднако, тут прорисовалась другая беда. Символы кирилицы не передаются в скрипт из формы.Читать ман по Multibyte String , много думать о значении параметров конфигурации этого модуля (текущее состояние дел смотреть по phpinfo (INFO_MODULES), как можно устанавливать нужные значения читать в мане по ini_set )Может кто знает, в чем тут проблема?Хостер слишком "умный".
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Опять про кодировку при работе с mail() (много и подробно)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]