Ключевые слова:rus, mail, mutt, patch, (найти похожие документы)
_ RU.UNIX (2:5077/15.22) _____________________________________________ RU.UNIX _
From : Alex G Chechelnitsky 2:5036/1 30 Aug 99 07:42:52
Subj : Mutt, в заголовке кириллица
________________________________________________________________________________
Hi!
Yuri Khachaturian <[email protected]> wrote:
YK> Поставил Mutt. Только никак не пойму как в нем сделать чтобы сабж по
YK> русски писался. Все в MIME кодируется и с другой стороны (по фидо)
YK> нечитаемо.
Способ номер 1 (для ленивых): Hе использовать в заголовке кириллицу.
Способ номер 2 (для меня наиболее приемлемый): Отпатчить mutt:
-- cut --
diff -cr mutt-0.95.4./init.h mutt-0.95.4/init.h
*** mutt-0.95.4./init.h Wed Feb 10 19:20:11 1999
- --- mutt-0.95.4/init.h Wed Apr 14 21:08:08 1999
***************
*** 240,245 ****
- --- 240,246 ----
{ "resolve", DT_BOOL, R_NONE, OPTRESOLVE, 1 },
{ "reverse_alias", DT_BOOL, R_BOTH, OPTREVALIAS, 0 },
{ "reverse_name", DT_BOOL, R_BOTH, OPTREVNAME, 0 },
+ { "rfc2047", DT_BOOL, R_NONE, OPTRFC2047, 1 },
{ "save_address", DT_BOOL, R_NONE, OPTSAVEADDRESS, 0 },
{ "save_empty", DT_BOOL, R_NONE, OPTSAVEEMPTY, 1 },
{ "save_name", DT_BOOL, R_NONE, OPTSAVENAME, 0 },
diff -cr mutt-0.95.4./mutt.h mutt-0.95.4/mutt.h
*** mutt-0.95.4./mutt.h Sun Feb 28 11:06:08 1999
- --- mutt-0.95.4/mutt.h Wed Apr 14 21:08:08 1999
***************
*** 323,328 ****
- --- 323,329 ----
OPTRESOLVE,
OPTREVALIAS,
OPTREVNAME,
+ OPTRFC2047,
OPTSAVEADDRESS,
OPTSAVEEMPTY,
OPTSAVENAME,
diff -cr mutt-0.95.4./sendlib.c mutt-0.95.4/sendlib.c
*** mutt-0.95.4./sendlib.c Wed Mar 3 10:08:26 1999
- --- mutt-0.95.4/sendlib.c Wed Apr 14 21:08:08 1999
***************
*** 1774,1794 ****
mutt_set_followup_to (env);
! /* Take care of 8-bit => 7-bit conversion. */
! rfc2047_encode_adrlist (env->to);
! rfc2047_encode_adrlist (env->cc);
! rfc2047_encode_adrlist (env->from);
! rfc2047_encode_adrlist (env->mail_followup_to);
! rfc2047_encode_adrlist (env->reply_to);
!
! if (env->subject)
{
! rfc2047_encode_string (buffer, sizeof (buffer) - 1,
! (unsigned char *) env->subject);
! safe_free ((void **) &env->subject);
! env->subject = safe_strdup (buffer);
}
- encode_headers (env->userhdrs);
if (!env->message_id)
env->message_id = mutt_gen_msgid ();
- --- 1774,1797 ----
mutt_set_followup_to (env);
! if (option(OPTRFC2047))
{
! /* Take care of 8-bit => 7-bit conversion. */
! rfc2047_encode_adrlist (env->to);
! rfc2047_encode_adrlist (env->cc);
! rfc2047_encode_adrlist (env->from);
! rfc2047_encode_adrlist (env->mail_followup_to);
! rfc2047_encode_adrlist (env->reply_to);
!
! if (env->subject)
! {
! rfc2047_encode_string (buffer, sizeof (buffer) - 1,
! (unsigned char *) env->subject);
! safe_free ((void **) &env->subject);
! env->subject = safe_strdup (buffer);
! }
! encode_headers (env->userhdrs);
}
if (!env->message_id)
env->message_id = mutt_gen_msgid ();
-- cut --
Этот патч для версии 0.95.4i, думаю, подойдет и для последующих
версий (рекомендуется иметь под рукой небольшой напильник).
После чего в конфигурационный файл (системный или конкретного пользователя)
можно добавить следующие строчки (отредактировать по вкусу):
-- cut --
#
# rfc2047 - нестандартная, но часто необходимая переменная. Могу поделиться
# патчем, если кому надо
#
send-hook . set rfc2047
send-hook stu\.lipetsk\.(ru|su)$ unset rfc2047
send-hook n(44|45|46|47|49|50|51)[0-9]{1,2}\.z2\.fidonet\.org$ unset rfc2047
#
# Макросы
#
macro compose g ":toggle rfc2047\r:set ?rfc2047\r"
macro compose v ":set ?rfc2047\r"
-- cut --
Переменная rfc2047 включает (если она is set - по умолчанию) или выключает
(если она is unset) кодирование всех заголовков (не только Subject:). Первый
send-hook устанавливают переменную для всех адресов. Два последующих
сбрасывают ее, если _хотя бы один_ из адресов получателей соответствует
regexp'у. Send-hook'и отрабатываются в порядки их появления в
конфигурационных файлах
Макросы позволяют перед отправкой письма (в меню compose) убедиться, что
переменная выставлена правильно ('v') и, в случае необходимости, изменить
ее значение ('g').
Способ номер 3 (для сильных духом): Поругаться с автором гэйта, потыкать
его носом в RFC, согласно которому кодирование заголовков совсем даже и не
бага, а самая настоящая фича, которую всякому уважающему себя гэйту надо
бы поддерживать. Есть, правда, опасность, что автор тоже окажется сильным
духом. ;-)
P.S. Я слышал, что в FidoNet'е три минуса подряд, иногда превращаются
в два минуса с плюсом посередине - патч может слегка покорежиться.
--
Александр Г. Чечельницкий
"Hаносить пользу, пpичинять добpо, подвеpгать ласке!"
--- ifmail v.2.14dev3 * Origin: Refrigerator Plant STINOL (2:5036/1@fidonet)