[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Отправка письма с вложением из командной строки (Исправленно)



Dmitry E. Oboukhov wrote:
TSS> На перле давным давно я пользовался модулем
TSS> Mail::Sender, переписывал его под заказ для
TSS> кастомного использования :)
TSS> сейчас он есть в дистрибутиве: libmail-sender-perl
TSS> - Perl Module for sending mails with attachments
TSS> там же и примеры для использования.

а кстати, MIME::Lite не очень дружит с utf8 и сабжект надо кодировать
вручную. но кода блин на его базе написана тьма, лениво переписывать.
что там у Mail::Sender с юникодом и кодированием заголовков?
О, точно, вот кусок печати заголовка.

sub print_hdr {
       my ($s, $hdr, $str, $charset) = @_;
       return if !defined $str or $str eq '';
       $str =~ s/[\x0D\x0A\s]+$//;

       if ($charset && $str =~ /[^[:ascii:]]/) {
               $str = encode_qp($str);
               $str =~ s/=\r?\n$//;
               $str = "=?$charset?Q?" . $str . "?=";
       }

       $str =~ s/(?:\x0D\x0A?|\x0A)/\x0D\x0A/sg; # \n or \r => \r\n
       $str =~ s/\x0D\x0A([^\t])/\x0D\x0A\t$1/sg;
if (length($str)+length($hdr) > 997) { # header too long, max 1000 chars
               $str =~ s/(.{1,997}[;,])\s+/$1\x0D\x0A\t/g;
       }
       print $s "$hdr: $str\x0D\x0A";
}


Reply to: