САМОУЧИТЕЛЬ PHP 4



         

Отправка и перекодирование писем


Приступим ко второй части нашей задачи — напишем функцию PostMail(), которая будет отправлять письмо адресату, преобразовав его предварительно в нужную кодировку. Вот какие возможности она будет обеспечивать:

r    вставку заголовка From

в письмо, если он еще не присутствует в сообщении;

r    преобразование  письма в нужную кодировку кириллицы;

r    вставку соответствующего значения в заголовок Content-type, чтобы письмо было "понятно" любой почтовой программе;

r    поддержку функций мини-шаблонизатора, который мы уже написали.

В листинге 32.2 приведен исходный код функции. Как обычно, мы помещаем функцию в отдельный модуль библиотекаря (библиотекарь описан в главе 29). Этот модуль будет использовать возможности, предоставляемые библиотекой Minitemplate.phl.

Листинг 32.2. Функция PostMail(): Mail.phl

<?

Uses("Minitemplate");

// Кодировка по умолчанию для исходного текста.

define("DefaultCode","w");

// Функция возвращает строку $st, переведенную из кодировки

// $from в кодировку $to. Возможные значения этих параметров:

// w[indows]  — windows-1251

// k[oi8-r]   — koi8-r

// m[ac]      — x-mac-cyrillic

// i[so]      — iso-8859-5

// t[ranslit] — translit ("английскими"

буквами — "русские" слова)

// Замечание: квадратными скобками помечены необязательные символы.

// параметр $from не может равняться "t", потому что трудно

// восстанавливать текст из транслита (хотя эта задача и разрешима).

// Функция полезна и сама по себе, но все-таки чаще всего ее

// применяют для работы с почтой. Именно поэтому я включаю

// ее в этот модуль.

function EncodeString($st,$to,$from=DefaultCode)

{ // Оставляем только первые буквы названий кодировок

  $from=strtolower(substr($from,0,1));

  $to  =strtolower(substr($to,0,1));

  // Пытаемся воспользоваться встроенной в PHP функцией




Содержание  Назад  Вперед