Решился тут, недавно таки постараться перевести из MIME в удобоваримый текст "from" и "subj" на странице "карантина" в DSPAM'e.
(Для тех кто не в курсе, кириллические поля там отображаются как "=?windows-1251?B?0SDSIMAgyy..." или "=?koi8-r?B?88vMwcTTy...")
Нарыл на каком-то форуме код который всё это должен перекодировать, и постарался прикрутить его к DSPAM'у.
Поставил MIME::Words внес поправки в dspam.cgi... вроде ОК... но не всё "ОК" а только часть...

Код, что добавлял:
Код: Выделить всё
use MIME::Words qw (:all);
use Convert::Cyrillic;
use strict;
...[skip]...
my $From=join("", map {xcode(${$_}[1], ${$_}[0])} decode_mimewords($row->{'From'}));
my $Subj=join("", map {xcode(${$_}[1], ${$_}[0])} decode_mimewords($row->{'Subject'}));
...[skip]...
# процедура перекодирования из чарсета, используемого в сообщении
# в koi8
sub xcode {
my ($charset, $src) = @_;
my %charsets = (
'windows-1251'=>'WIN',
'iso8859-5'=>'ISO',
'koi8-r'=>'KOI8',
'koi8r'=>'KOI8',
'koi8-u'=>'KOI8',
'utf-8'=>'UTF8',
'utf8'=>'UTF8'
);
return $src unless ($charsets{lc($charset)});
Convert::Cyrillic::cstocs($charsets{lc($charset)}, 'KOI8', $src);
}
и я решил пойти более сложным путем, с надеждой что этот код будет перекодировать всё в KOI...
Но, каменный цветок не вышел... Перекодируется не всё...
Вопрос на засыпь, знающим perl. В чем может быть косяк?
Да, и, если не сложно, объясните пожалуйста принцип работы вот этого куска "{xcode(${$_}[1], ${$_}[0])}" тут меня больше интересует что вот это такое(${$_}[1] и ${$_}[0])?...
Как я понимаю функции xcode передается $charset и $src, где тогда тут $src? и если $src это decode_mimewords($row->{'Subject'}), почему тогда оно вынесено ЗА скобки?...
Если я пойму чего и как куда передается, может я сам соображу почему он у меня "не всё" перекодирует...
Заранее спасибо...
