[perl][mail] Русские буквы в subject-е [fixed]
а чем отправляешь?
open (M, "|-") || exec ($SENDMAIL,"-f",$from,$to);
print M $body;
close M;
вроде, если по одному слову кодировать, а потом сцеплять через пробел, то прокатывает.
но я, конечно, могу что-то напутать, а проверять мне сейчас влом.
на CPAN, как я помню, лежал патч к этому самому модулю --- если это целесообразно, то можно пропатчить. короче, проблема эта известная.
function encode_header_value ($value)
{
$ascii = @iconv ("UTF-8", "ASCII", $value);
if ($ascii != $value || ereg ("[\n\r]", $value
{
$e_value = base64_encode ($value);
$value = '=?UTF-8?B?'.$e_value.'?=';
}
return $value;
}
Функция берёт строку в UTF-8 и выдаёт её в таком виде, в котором её можно подставлять в Subject:
Возьми с цпана модуль MIME::AltWords или MIME::EncWords. Там есть функция encode_mimewords.
Оставить комментарий
Sharp
Пытаюсь отправить письмо из perl-ового скрипта.С русскими буквами в теле все прошло на ура, но в поле Subject упорно не получаются.
пробовал написать
и
Все какая-то фигня получается.
Может кто подсказать, как добиться правильного поведения?