Главная Контакты


  На сайте

  Java, JavaScript
  Документация Perl
  Документация PHP
  Документация ASP
  Новости сайта
  Flash
  Интернет протоколы
  Apache
  Уроки программирования
  Язык программирования C
 


использование библиотеки mime-base64


между =? и следующим ? идет тип кодовой таблицы строки-источника. B? означает Base-64 encoding, ?Q означает Quoted Printable encoding. Значит, для определения типа строки можно нарисовать следующий код: # такие сложности с определением подстроки вызваны тем, # что выражение $str =~ "B?" не дает нужного результата # под ActivePerl в Windows. my $ind1 = index $str,"B?"; # ищем признак encoded-base64 my $ind2 = index $str,"Q?"; # ищем признак encoded quoted-printable if ($ind1 > 0) { # если строка encoded-base64 ($b,$s) = split(/B?/,$str); #отрубаем служебную информацию вида =?koi8-r?B? ($st,$rest) = split(/?=/,$s); #отрубаем окончание строки ?= $result = decode_base64($st); # получаем результат } if ($ind2 > 0) { # если строка encoded quoted-printable ($b,$s) = split(/Q?/,$str); # отрубаем служебную информацию вида =?koi8-r?Q? ($st,$rest) = split(/?=/,$s); # отрубаем окончание строки ?= $result = decode_qp($st); # получаем результат } Собственно, с закодированными полями в заголовке письма разобрались. Теперь на очереди тело письма. Чтобы определить вид кодировки в теле письма, нам нужно сновапорыться в header-е сообщения. В заголовках кодированных писем должна присутствовать строка типа: Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: quoted-printable В этих полях, определяется, в какой кодировке исходное сообщение (koi8-r,windows-1251,....), и тип MIME кодировки (quoted-printable, base-64, 8bit,....). Если MIME кодировка 8bit, то делать ничего не надо, если иная, то читаем сообщение построчно и раскодируем его: # пример для quoted-printable; foreach $line(@message_body) { print decode_qp($line); } Строки, содержащие HTML код и строки, набранные латинскими знаками (US/English) перекодироваться не будут. Вот, собственно, и все.

В наборе библиотек MIME есть еще пакеты Lite-1, Lite-2 "облегченные" MIME кодеры/декодеры, с помощью них можно создавать / читать многосекционные MIME-encoded сообщения (например, вложенная картинка), HTML для преобразования HTML письма в MIME-Lite формат, Tools для разбора и создания MIME вхождений, ispMailGate для создания фильтров на почтовом сервере с демоном sendmail. Чтобы их разбирать и описывать, нужен десяток статей такого же объема, как эта, а посему, позвольте на этом закончить.

Другие статьи по теме:

- практическое применение perl-скриптов
- использование библиотеки mime-base64
- Perl для чайников от ns
- повышение индивидуального мастерства дизайнера
- почему я выбрал perl?


Голосование:
Чего Вы хотели бы видеть больше на сайте?

Статей, документации
Скриптов
Программ для вебмастера
Я не знаю



Другие голосования

Обмен кнопочками:



Приглашаем Вас обменяться кнопочками! Обращайтесь к администратору.


Новые статьи:


Наши партнеры:





2006-2024 © SMTI.RU
Главная страница | Связаться с нами