Вход
Главное меню





12>


Хак для мейлера - 1251!
#1
Just popping in
Just popping in


Задолбало, что письма приходящие юзерам часто читаются не в той кодировке. Хоопс посылает, ессесно в 1251, а у юзера, к примеру, по умолчанию КОИ8. Он видит тарабарщину. Конечно, грамотного это не спугнет - поменяет кодировку - и все дела. Но вот когда имеешь дело с дураками... :moderator:
Короче, хочется сделать, чтобы в заголовке письма кодировка была прописана принудительна. Заголовки генерятся файлом \class\xoopsmailer.php
Добавляю в нем строки (между 49 и 50):
$this->headers[] = "X-Mailer: PHP/".phpversion().$this->LE;
// coding 1251
$this->headers[] = "MIME-Version: 1.0";
$this->headers[] = "Content-type: text/plain; charset=windows-1251";
$this->headers[] = "Content-transfer-encoding: 8bit";
//end of coding 1251
$this->headers[] = "Return-Path: ".$this->fromEmail;
Не работает! Мейлер вообще перестает слать что-либо.
Может, нужно добавить обнуление этих полей в функции reset()?
Помогите....

Posted on: 2003/1/31 11:03
 Top  Print  Reply Quote


Re: Хак для мейлера - 1251!
#2


Дааааа уж!

Заголовками рулить можно конечно, но не всякий майл-клиент их правильно интерпретирует (некоторые выообще пиливали на заголовки).

Решение ОЧЕНЬ простое и к тому-же предусмотренное авторами xoops.
Открывай файл class\xoopsmailer.php, переходи в его конец и заполни функции перекодировки соответствующим образом, т.е.:

function encodeFromName($text){
return convert_cyr_string($text, 'w','k');
}

function encodeSubject($text){
return convert_cyr_string($text, 'w','k');

}

function encodeBody(&$text){
$text=convert_cyr_string($text, 'w','k');
}

И, "окинься на спинку кресла" (c) ms windows.

Posted on: 2003/1/31 11:18
 Top  Print  Reply Quote


Re: Хак для мейлера - 1251!
#3
Just popping in
Just popping in



Posted on: 2003/1/31 11:45
Дождь идет а мы на лыжах
 Top  Print  Reply Quote


Re: Хак для мейлера - 1251!
#4
Just popping in
Just popping in


Спасибо, проверил - работает отлично!
А то я, правда, задолбался отвечать на вопросы типа "как мне проситать эту белиберду"

Posted on: 2003/1/31 12:23
 Top  Print  Reply Quote


Re: Хак для мейлера - 1251!
#5


а для Х2 РС3 такое можно сделать? а то этот способ не пашет...

Posted on: 2003/4/3 11:53
http://bratan.no-ip.info
ссылки на игры, фильмы, музыку в eDonkey
 Top  Print  Reply Quote


Re: Хак для мейлера - 1251!
#6
Just popping in
Just popping in


Можно. В файле xoopsmailerlocal.php, который лежит в language\russian.

Posted on: 2003/4/3 13:31
Зри в корень !
 Top  Print  Reply Quote


Re: Хак для мейлера - 1251!
#7


в том то и дело. есть этот файл. но письма по прежнему приходят в долбаной кои-8р кодировке, чтоб оно все сдохло. чё делать- не знаю

Posted on: 2003/4/3 17:23
http://bratan.no-ip.info
ссылки на игры, фильмы, музыку в eDonkey
 Top  Print  Reply Quote


Re: Хак для мейлера - 1251!
#8


В этом файле делается перекодировка из 1251 в koi8-r. Если нужно чтобы отправлялось в 1251, то просто удали этот файл. Но нужно иметь в виду, что большинство (подавляющее) почтовых клиентов хотят по умолчанию именно koi8-r. Кроме того существует такая вещь как заголовки письма в которых тоже неплохо было-бы прописать, в какой кодировке прислано письмо.
В xoops2 до rc3 включительно с кодировкой почты была проблема. Я уже задолбал onokazu по этому поводу. Теперь осталось только одна ошибка - поле FromName не переводится в кодировку koi8-r. Но я его все равно доканаю до выхода релиза. Более менее рабочая версия почты лежит сейчас в cvs.

Posted on: 2003/4/4 0:04
 Top  Print  Reply Quote


Re: Хак для мейлера - 1251!
#9
Just popping in
Just popping in


Quote:
Теперь осталось только одна ошибка - поле FromName не переводится в кодировку koi8-r

Почему не переводится? В xoopslocalmailer.php все же прописано.

Posted on: 2003/4/4 7:35
Зри в корень !
 Top  Print  Reply Quote


Re: Хак для мейлера - 1251!
#10


Ну и что, что прописано. А метод encodeFromName никогда из xoops2 не вызывается, следовательно и не переводится.

Posted on: 2003/4/5 6:15
 Top  Print  Reply Quote








Powered by XOOPS © 2001-2023 The XOOPS Project