LINUX.ORG.RU
ФорумAdmin

Postfix: Отрезаем аттачи с русскими именами


0

0

Добрый день!

CentOS 5.2 (i386), postfix-2.3.3-2.1.el5_2

маюсь с проблемой отрезания аттачей с русскими именами. С английскими отрезаются на ура.

смотрел здесь:
http://www.opennet.ru/tips/info/731.shtml
и здесь:
http://www.opennet.ru/openforum/vsluhforumID10/1666.html (при чём тут человеку вроде бы помогло - но у меня так и не пашет)

main.cf:
mime_header_checks = regexp:/etc/postfix/mime_header_checks

/etc/postfix/mime_header_checks
/^\s*Content-(Disposition|Type).*name\s*=\s*"?(.+\.(exe))"?\s*$/ REJECT Exe

Аттачи с латиницей отрезает прекрасно, с русскими даже не замечает :(

помогите советом!


Посмотрите заголовок проходящих писем, наверное там имя файла завёрнуто в base64. ИМХО, в этом случае встроенными фильтрами на регулярных выражениях перекрыть это не получится и надо будет использовать внешний фильтр (скрипт).

mky ★★★★★
()
Ответ на: комментарий от zhiltsov

В base64 http://ru.wikipedia.org/wiki/Base64 три байта исходного текста кодируются 4 байтами. Поэтому как будет закодировано ".exe" может зависить от симвова, стоящего перед точкой (если подстрока ".exe" не выровнена по границе 3x байт).

Например,
"1.exe" => "MS5leGU="
"2.exe" => "Mi5leGU="
"11.exe" => "MTEuZXhl"

Разумеется, можно написать регулярное выражение (через "|") для всех возможных вариантов, но ИМХО, оно будет слишком длинным.

mky ★★★★★
()

>Аттачи с латиницей отрезает прекрасно, с русскими даже не замечает :(

>помогите советом!

Postfix такое резать на header_checks не умеет. Если аттач обозван не по английски, то имя прицепа прилетает в base64 с которым сделать, что-то сложно.

В итоге нужна внешняя тулза.

Bebop ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.