LINUX.ORG.RU

fix-mime-charset


0

0

Программка для автоматического определения кодировки писем. Фичи:

* Автоматическое определение кодировки (на данный момент: KOI8-R, CP1251 и UTF-8). * Кодировка прописывается в Content-Type. Другие заголовки остаются на месте, текст письма тоже не перекодируется. * Нормально обрабатываются письма с аттачами (multipart/*). Из них обрабатываются те части, которые text/plain, остальные остаются в неприкосновенности. * Нормально обрабатывается quoted-printable и base64. * Может работать с mailbox'ами целиком (в формате Unix mailbox, в качестве разделителей сообщений служат строки, начинающиеся с "From"). * Держит в памяти только ту часть письма, которая необходима, поэтому не требует много памяти даже для очень больших писем. Работает очень быстро.

>>> Подробности

anonymous

Проверено: green

В gentoo не собирается....

parser.cc: In function `std::string crop(const std::string&)': parser.cc:77: `isspace' undeclared (first use this function) parser.cc:77: (Each undeclared identifier is reported only once for each function it appears in.) parser.cc: In function `std::string getHeaderName(const std::string&)': parser.cc:89: `isalpha' undeclared (first use this function) parser.cc:91: could not convert `(&i)->__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator*() const [with _Iterator = const char*, _Container = std::basic_string<char, std::char_traits<char>, std::allocator<char> >]()' to `const std::string&' parser.cc:67: in passing argument 1 of `std::string tolower(const std::string&) ' make[1]: *** [parser.o] Ошибка 1 make[1]: Leaving directory `/usr/local/src/fix-mime-charset-0.1.0/src' make: *** [all-recursive] Ошибка 1

anonymous
()
Ответ на: комментарий от anonymous

В gentoo не собирается....

parser.cc: In function `std::string crop(const std::string&)':
parser.cc:77: `isspace' undeclared (first use this function)
parser.cc:77: (Each undeclared identifier is reported only once for each
function it appears in.)
parser.cc: In function `std::string getHeaderName(const std::string&)':
parser.cc:89: `isalpha' undeclared (first use this function)
parser.cc:91: could not convert `(&i)->__gnu_cxx::__normal_iterator<_Iterator,
_Container>::operator*() const [with _Iterator = const char*, _Container =
std::basic_string<char, std::char_traits<char>, std::allocator<char> >]()'
to `const std::string&'
parser.cc:67: in passing argument 1 of `std::string tolower(const std::string&)
'
make[1]: *** [parser.o] Ошибка 1
make[1]: Leaving directory `/usr/local/src/fix-mime-charset-0.1.0/src'
make: *** [all-recursive] Ошибка 1

anonymous
()

А вот как бы ещё и плоские 8bit Subject на русском в виндовой кодировке и прочие подобные поля в письмах от тупых виндовых клиентов заворачивать в base64 автоматом.... Тогда всё было бы...

anonymous
()

> в формате Unix mailbox, в качестве разделителей сообщений служат строки, начинающиеся с "From"

то есть тексты пересылаемые в теле письма будут корежиться?

anonymous
()

Полезная програмка! Правда, ИМХО, C++ Несколько "из пушки по воробьям", Perl бы вполне справился с такой работой... Но все равно - хорошо :) Спасибо!

BaT ★★★★★
()

>> в формате Unix mailbox, в качестве разделителей сообщений служат строки, начинающиеся с "From"

>то есть тексты пересылаемые в теле письма будут корежиться?

А в те From подставляется > в начало. А когда отдается, то исключается.

AS ★★★★★
()

В /dev/null все письма с неуказанным или неправильно указанным
чарсетом. Ничего полезного в них не может быть по определению.
Почему кто-то настойчиво пытается принять на себя заботу об
исправлении чужих ошибок?

anonymous
()
Ответ на: комментарий от anonymous

Сенкс! И в RH9 засобиралось :)

anonymous
()

Спасибо всем откликнувшимся. Сегодня выложил версию 0.1.1, где исправлены все ошибки компиляции, о которых мне сообщили. К сожалению, модератор не дал мне проанонсировать это на главной странице.

В ближайшее время будет выложен релиз 0.2.0, который умеет заворачивать в base64 поля Subject и проставлять там правильную кодировку.

balu
()
Ответ на: комментарий от balu

А вот за это большое человеческое спасибо скажу тебе :)))

anonymous
()

люди расскажите плиз начинающему как эту программу прописать в procmailrc

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