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

         

Отправка и перекодирование писем - часть 3


// в Win32, то письмо не посылается, а создается отладочный файл,

// в котором будет содержаться текст письма.

// Письмо должно состоять из заголовков и тела, разделенных

// маркером ~StartOfMail.

function SendMail($to,$msg,$encTo=DefaultCode,$encFrom=DefaultCode)

{ global $CoderCharset;

  // Перекодируем

  $msg=EncodeString($msg,$encTo,$encFrom); // тело письма

  $head="";                                // заголовки

  // Если есть заголовки, выделяем их.

  if(strpos($msg,MailDivider)!==false) {

    $regs=split(MailDivider."\r?\n?",$msg,2); // тело и заголовки

    $head=trim($regs[0]);

    $msg=$regs[1];

  }

  // Работаем с заголовками. Разбиваем их на строки.

  if($head) $Lines=split("[\r\n]+",$head); else $Lines=array();

  $HasContType=0;   // число найденных заголовков Content-type

  $chs="charset=$CoderCharset[$encTo]";

  $subject="";

  for($i=0; $i<count($Lines); $i++) {

    $l=&$Lines[$i];

    // Проставляем текущую кодировку у письма. Для этого

    // проверяем, задан ли в нем заголовок Content-type и,

    // если задан, то модифицируем его, а если нет —

    // добавляем этот заголовок в начало и конец письма.

    if(eregi("^Content-type:",$l)) {

      if(eregi("charset *=",$l))

        $l=eregi_Replace("charset *= *[^;,\n]+",$chs,$l);

      else

        $l.="; $chs";

      $HasContType++;

    }

    // Проверяем значение поля "to" в письме — там может быть имя

    // получателя. В этом случае добавляем к нему еще и адрес.

    if(eregi("^to:([^\r\n]*)",$l,$regs)) {

      $to=trim($regs[1])." <$to>";

      $l="";

    }

    // Проверяем заголовок Subject. В некоторых верcиях PHP

    // передача пустого второго параметра в функцию mail()

    // приводит к нежелательным последствиям. Указывая в заголовке

    // значение Subject из письма, мы решаем проблему.

    if(eregi("^subject:([^\r\n]*)",$l,$regs)) {




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






Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий