Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

PHP отправка письма - в заголовке косячная кодировка

6.6K
26 июля 2007 года
noff
67 / / 01.08.2006
Здравствуйте.
Имеется сайт на php на только что поставленный сервер.

Кодировка UTF-8.

Кусок кода:
 
Код:
$message = "Здравствуйте. Вы (кто-то другой) сделали запрос на восстановление пароля доступа к системе.
Ваш пароль: {Password}"
;
$message = str_replace( "{Password}", $password, $message );
mail( $user->Mail, "Восстановление пароля", $message,
        'MIME-Version: 1.0' . "\r\n" .
        'Content-type: text/plain; charset=utf-8 \r\n' .
        'From: MASE <' . SERVICE_MAIL . '>\r\n' );


Отправляет письмо, письмо приходит:
Заголовок: ???????????&#9567;???????&#9577;?&#9571;?????&#9571; ???&#9567;?????&#9577;??
Текст письма: нормальный. Кодировка письма тоже utf-8.

Т.е. косячится только тема сообщения.

Что с этим можно сделать?

Информация:

Почтовый SMTP-сервер - JAMES от Apache.
PHP 5.x
Apache 2.2
MySQL 5.x

Примечание: тут же висит сайт, сделанный на парсере лебедева в кодировке 1251 - письма ходят нормальные через тот же SMTP-сервер. Так что думается, что дело в PHP.
13
27 июля 2007 года
RussianSpy
3.0K / / 04.07.2006
а отправить самому себе письмо и посмотреть как сделано не судьба?

Попробуйте.
А если не заработает - стукните в аську - бум думать вместе
15
27 июля 2007 года
shaelf
2.7K / / 04.05.2005
Дело не в php, уже проходили... Отправляй письма в KOI8-R (iconv) и должно быть всё нормально. Просто заголовки (subject) некоторые программы усилено пытаются читать только и KOI8-R, а при чтении "вспоминают", что есть другие кодировки)
6.6K
27 июля 2007 года
noff
67 / / 01.08.2006
Цитата: RussianSpy
а отправить самому себе письмо и посмотреть как сделано не судьба?


А я разве как-то по-другому делаю?


Цитата:
Дело не в php, уже проходили... Отправляй письма в KOI8-R (iconv) и должно быть всё нормально. Просто заголовки (subject) некоторые программы усилено пытаются читать только и KOI8-R, а при чтении "вспоминают", что есть другие кодировки)


Тут я проверял и в The Bat и в ThunderBird и в GMail. Уж Gmail-то всегда заголовки нормально принимал, а тут тоже нивкакую.

Кстати. То же самое, работающее на локальном хостинге или на мастерхосте - работает нормально. С кодировками все замечательно.

Так что, думаю, что проблема именно с сервером.
Перекодировать в КОИ8, это, конечно, выход. Но это не совсем правильно. Ведь сервер должен работать нормально, а не с заплатками.

Вот здесь мой файл php.ini : http://mkechinov.ru/_file/php.ini

6.6K
27 июля 2007 года
noff
67 / / 01.08.2006
А вот это я получаю по почте:

Цитата:
From - Thu Jul 26 10:22:16 2007
X-Account-Key: account2
X-UIDL: 1185430858.55338.mx-14.masterhost.ru,S=1386
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: <robot@5151.ru>
Delivered-To: [email]XX@XXXXXXX.ru[/email]
Received: (qmail 55327 invoked from network); 26 Jul 2007 06:20:53 -0000
Received: from unknown (HELO wearbear-h0hawf) (217.112.36.176)
by mx1.masterhost.ru with SMTP; 26 Jul 2007 06:20:44 -0000
Message-ID: <6507439.21185430836031.JavaMail.Administrator@wearbear-h0hawf>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Received: from 127.0.0.1 ([127.0.0.1])
by wearbear-h0hawf (JAMES SMTP Server 2.3.1) with SMTP ID 156
for <we@mj-project.ru>;
Wed, 25 Jul 2007 23:20:34 -0700 (PDT)
Date: Wed, 25 Jul 2007 23:20:34 -0700
Subject: ???????????А???????Л?Е?????Е ???А?????Л?? ?? ?????????Е???Е XXX
To: [email]me@mymail.ru[/email]
Content-type: text/plain; charset=utf-8
From: XXXXX <XXXXX@XXXXX.co.uk>
X-SpamTest-Envelope-From: [email]robot@XXXX.ru[/email]
X-SpamTest-Group-ID: 00000000
X-SpamTest-Info: Profiles 1284 [July 25 2007]
X-SpamTest-Info: helo_type=3
X-SpamTest-Info: {relay has no DNS name}
X-SpamTest-Method: none
X-SpamTest-Rate: 40
X-SpamTest-Status: Not detected
X-SpamTest-Status-Extended: not_detected
X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0255], KAS30/Release

а&#65533;аДб&#65533;аАаВб&#65533;б&#65533;аВб&#65533;аЙб&#65533;аЕ.

а&#65533;б&#65533; (аКб&#65533;аО-б&#65533;аО аДб&#65533;б&#65533;аГаОаЙ) б&#65533;аДаЕаЛаАаЛаИ аЗаАаПб&#65533;аОб&#65533; аНаА аВаОб&#65533;б&#65533;б&#65533;аАаНаОаВаЛаЕаНаИаЕ аПаАб&#65533;аОаЛб&#65533; аДаОб&#65533;б&#65533;б&#65533;аПаА
аК б&#65533;аИб&#65533;б&#65533;аЕаМаЕ XXXXX.

а&#65533;аАб&#65533; аПаАб&#65533;аОаЛб&#65533;: XXXXX

аЁ б&#65533;аВаАаЖаЕаНаИаЕаМ, б&#65533;аЛб&#65533;аЖаБаА аПаОаДаДаЕб&#65533;аЖаКаИ аПб&#65533;аОаЕаКб&#65533;аА XXXX.




Даже тут видно, что текст письма в одной кодировке, а заголовок уже сразу вопросиками пошел.

6.6K
27 июля 2007 года
noff
67 / / 01.08.2006
Кстати, опять же - мне думается, что это проблема PHP, т.к. когда стоящим там же Парсер (parser.ru) отправляет сообщения в windows-1251 - все почтовые программы нормально их принимают. Без перекодировки в кои-8.
31K
29 июля 2007 года
letchik
1 / / 29.07.2007
Цитата: noff
Здравствуйте.
 
Код:
mail( $user->Mail, "Восстановление пароля", $message,
        'MIME-Version: 1.0' . "\r\n" .
        'Content-type: text/plain; charset=utf-8 \r\n' .
        'From: MASE <' . SERVICE_MAIL . '>\r\n' );


Попробуй вот так:

 
Код:
mail( $user->Mail, '=?UTF8?B?'.base64_encode("Восстановление пароля").'?=', $message,
        'MIME-Version: 1.0' . "\r\n" .
        'Content-type: text/plain; charset=utf-8 \r\n' .
        'From: MASE <' . SERVICE_MAIL . '>\r\n' );

Ещё желательно последним параметром добавлять
 
Код:
mail(XXXX,XXXX,XXXX,XXXX,'-fтвой_мыл');

Это чтобы ответы сендмейла приходили тебе, а не админу сервера, в случае ошибок.
6.6K
30 июля 2007 года
noff
67 / / 01.08.2006
Попробую. А что в данном случае значит вот это:
'=?UTF8?B?'.base64_encode("Восстановление пароля").'?='
?
6.6K
30 июля 2007 года
noff
67 / / 01.08.2006
!!! СПАСИБО! Помогло.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог