The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"maildrop и non-latin кодировка"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"maildrop и non-latin кодировка"  +/
Сообщение от Добрый доктор on 31-Янв-14, 22:35 
Возможно ли использовать в maildropfilter выражениях условия, содержащие кириллицу?

Документация мутно трактует о том, что maildrop может оценивать паттерны в UTF-8 и расширять их на все возможные способы MIME кодирования.

Типа, пишешь "СЕМИНАР" (в UTF-8) и maildrop найдет по нему совпадение как с заголовком
"=?UTF-8?B?0KHQldCc0JjQndCQ0KA=?="
так и с заголовком
=?KOI8-R?B?8+Xt6e7h8g==?=

Выражение
if (/^Subject:.*(dostavka|PEREEZD|DVD)/)
    {
       exception {
                 log "Because of Subject header is matched:$MATCH1"
                 to $DEFAULT/.aMaildrop.aTrash/
                 }
    }

исправно сваливает все письма, в заголовке которых встречается "dostavka", или "PEREEZD", или "DVD" в IMAP папку "aTrash"

А вот добиться того, чтобы письма с заголовком "СЕМИНАР" также сваливались в треш, я добиться не могу.

Пробовал:
1. Использовать в .maildroprc все мыслимые UTF представления строки "СЕМИНАР"
2. Использовать в .maildroprc фрагменты base64 кодированных и еще черти как MIME кодированных строк "СЕМИНАР".

Выражение
if (/^Subject:.*(0KHQldCc0JjQndCQ0KA)/)
    {
       exception {
                 log "Because of Subject header is matched:$MATCH1"
                 to $DEFAULT/.aMaildrop.aTrash/
                 }
    }
и все прочие не работают.

В каком представлении maildrop кушает UTF-8 строки?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "maildrop и non-latin кодировка"  +/
Сообщение от Добрый доктор on 01-Фев-14, 01:47 
Решено. Тупо редактируем .maildroprc в gedit, например.
Всё ловится на уровне поведения utf8_general_ci.

А глюк такой:
в $MATCH1 по '*' садится сразу UTF-8 строка, каким бы вариантом не был замухлёван MIME заголовок.

Поэтому вот такие советы ( comments.gmane.org/gmane.mail.maildrop/4012 ) не работают:
----------------
While maildrop itself can't handle utf-8, you can call reformime and compare
the decoded stream, e.g.

if( /^Subject:(.*)/ )
{
        SUB=`reformime -h "$MATCH1"`
        if( $SUB =~ /your 8-bit string/ )
        {
                to "./Maildir/.whatever/."
        }
}

You can set this up for any MIME-encoded headers.
----------------
В манах reformime (http://www.courier-mta.org/reformime.html) написано то же самое, что и в этом неработающем примере:
$ reformime -h '=?iso-8859-1?Q?H=F3la!?='
Hóla!

В командной строке эта конструкция НЕ работает без указания кодировки:

reformime -h '=?koi8-r?B?blablabla?=' -- выдает шиш
а
reformime -с 'KOI8-R' -h '=?koi8-r?B?blablabla?=' -- выдает искомое
reformime -с 'UTF-8' -h '=?utf-8?B?blablabla?=' -- тоже хорошо

без указания -с 'кодировка' выдаются только 7-bit символы, остальное теряется

А внутри maildroprc файла в $MATCH1 сразу садится utf-8 строка.
И reformime возвращает чушь.

Maildrop кушает просто "блокнотный" текст в utf-8, а \uNNNN, \%NNNN, 0xNNNN и все прочие unicode ентити представления игнорирует.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру