|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Denis Zwerew 2:5030/1521 08 Nov 2000 15:05:10 To : Andrey Brindeew Subject : RFC-1521 (1522) -------------------------------------------------------------------------------- Суб Hоя 04 2028 20:28, Andrey Brindeew wrote to All: Вот кусок из моего примера, который читает заголовок и отображает его на вебе: use MIME::Base64 (); ... print "Content-type: text/html\n\n"; print "<HTML><HEAD><TITLE>Header of messages</TITLE>"; print '<META HTTP-EQUIV="Content-Type" CONTENT="text/plain; charset=koi8-r"> </HEAD><BODY>'; print "<TABLE BORDER=1>"; open(TEMP, "$dirname/$filename"); /$filename - файл с одним письмом while($data=<TEMP>){ chomp($data); if ($data =~ /^Date:/){ ($date = $data) =~ s/^Date://g; } if ($data =~ /^From:/){ ($from = $data) =~ s/^From://g; $fromR = MIME_decoder($data); } if ($data =~ /^Subject:/){ ($subj = $data) =~ s/^Subject://g; $subjR = MIME_decoder($data); } } close(TEMP); print "<TR>"; print "<TD>$fromR</TD><TD>$subjR</TD><TD>$date</TD>"; print "</TR>"; print "</TABLE>"; print "</BODY></HTML>"; } sub MIME_decoder{ ($decoded) = @_; if ($decoded =~ /iso-8859-5/){ $decoded =~ s/^.+\?iso-8859-5\?B\?(.+)\?.+$/$1/g; $from_dec = "°±¶іґµб¶·г№д»јЅѕзАБВГДЕЖЗИЙКЛМНОПРСТУФХёЦЧШЩЪЫЬЭЮЯрстуфхцчшщъыьэюя"; } if ($decoded =~ /koi8-r/){ $decoded =~ s/^.+\?koi8-r\?B\?(.+)\?.+$/$1/g; $from_dec = "стччфхіцъщъыьэюяЁтуфхцшуюыэ\377щшьрёБВЧЗДЕгЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАС"; } if ($decoded =~ /windows-1251/){ $decoded =~ s/^.+\?windows-1251\?B\?(.+)\?.+$/$1/g; $from_dec = "АБВГДЕіЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯрстуфхгцчшщъыьэюяЁётуфхцчшщъыьэю\377"; } if ($decoded =~ /cp866/){ $decoded =~ s/^.+\?cp866\?B\?(.+)\?.+$/$1/g; $from_dec = "АБВГДЕЁЖЗИЙКЛМHОПРСТУФХЦЧШЩЪ абвгдЅёжзійґлмно·рстуфхцчшщъыьэюя"; } $to_dec = "стччфхіцъщъыьэюяЁтуфхцшуюыэ\377щшьрёБВЧЗДЕгЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАС"; $decoded = MIME::Base64::decode($decoded); eval "\$decoded =~ tr/$from_dec/$to_dec/"; return($decoded); } AB> "Denis Zwerew" wrote: >> попробуй так: >> use MIME::Base64 (); >> ... >> $subj = "Subject: " . MIME_decoder("здесь пишем тему письма"); AB> Hа самом деле решение было-таки найдено: MIME::Words . AB> Так что, видимо, придется мне разработать модуль, который бы строго AB> следовал RFC-822 & RFC-1522 в части headers (т.е. просто скармливаем AB> массив адресов, а модуль весьма аккуратно со всем этим разбирается, AB> энкодит все как положено и скармливает полученное модулям MIME::* - AB> для создания письма). С наилучшими пожеланиями, Denis. ICQ UIN: 7311194 (Always OnLine) Phone (work): 118-4800 (10:00 - 18:00) --- System Administrator of Ilim Palp Enterprise * Origin: -> Denis.Zverev@ipe.com.ru <- (2:5030/1521) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/146643a095fa8.html, оценка из 5, голосов 10
|