$subject=trim($regs[1]);
}
}
// Нет заголовка Content-type — добавляем его в конец.
if(!$HasContType) $Lines[]="Content-type: text/plain; $chs";
// Соединяем строки опять вместе.
$head=ereg_Replace("\n\n+","\n",join("\n",$Lines));
// Посылаем письмо.
$Result=@mail($to,$subject,$msg,$head)!=0;
// В Windows параллельно ведем журнал писем (для отладки).
if(getenv("COMSPEC")) {
if(!@is_dir("debug")) mkdir("debug",0755);
$f=fopen("debug/_debug_mail.txt","a+");
fputs($f,"> to: $to\n");
fputs($f,"$head\n--------\n");
fputs($f,"$msg\n-----------------------------------------\n\n");
fclose($f);
}
return $Result;
}
// Функция PostMail() "разворачивает" шаблон $msg, делая доступным для
// него переменные из массива $Vars (см. описание функций
// ExpandTemplate() и ExpandFile()). Затем она переводит результирующий
// текст в кодировку, заданную в $encTo (сам текст при этом
// рассматривается в кодировке $encFrom), и посылает его по электронной
// почте по адресу $to. Если строка $msg начинается с префикса
// file:, за которым следует имя файла, то шаблон письма загружается из
// этого файла при помощи ExpandFile(). В противном случае в качестве
// шаблона рассматривается сам параметр $msg.
function PostMail($to,$msg,$encTo=DefaultCode,
$Vars=false,$encFrom=DefaultCode)
{ if(eregi("^file:(.*)(\n|\$)",$msg,$P))
$Text=ExpandFile(trim($P[1]),$Vars);
else
$Text=ExpandTemplate($msg,$Vars);
// Посылаем письмо.
return SendMail($to,$Text,$encTo,$encFrom);
}
?>
Отличительной особенностью функции EncodeString() (а также всех остальных почтовых функций) является то, что она умеет перекодировать текст в транслит.
Термин "транслит" (сокращение от "транслитерация") означает такую кодировку кириллицы, при которой все "русские" буквы контекстно заменяются на записанные в соответствии с английской транскрипцией. Например, vot stroka, zapisannaya translitom. Эта кодировка особенно полезна для пользователей Unix, которые забыли установить у себя "русскую" таблицу символов.