Отправка почты. Эксклюзивные заголовки.


Прислал: Аркадий Бабулин [ 24.10.2001 @ 14:52 ]
Раздел:: [ Статьи по PHP ]


Отправка почты. Эксклюзивные заголовки.
Итак, посмотрим, как можно приукрасить и в тоже время повысить информативность почты при помощи заголовков почтовых сообщений.
Вводная:
Рассмотрим скрипт, который отсылает на ваш адрес информацию, забитую посетителем в форму на вашем сайте. Допустим это будет заказ документации. Форма выглядит так:
Фамилия: *
Имя Отчество: *
Организация: 
Должность: 
Телефон: 
e-mail: *
В скрипт приходят следующие переменные:
<?php
$lname = ""; // Фамилия
$fname = ""; // Имя Отчество
$org = ""; // Организация
$pos = ""; // Должность
$tel = ""; // Телефон
$milo = ""; // Адрес электронной почты
?>
Рассматривать проверку правильности заполнения формы здесь не будем. Об этом написано уже довольно много и вообще это тема для отдельной статьи. Посмотрим, как можно поиграться с данными, что отсылает эта форма скрипту. Определим переменные, которые будут задействованы в отправке письма:
<?php
$from = ""; // От кого письмо
$to = ""; // Кому письмо. Здесь целесообразно поставить свой адрес
$subj = ""; // Заголовок письма
$body = ""; // Тело письма
$adds = ""; // Дополнительные заголовки
...
// Отправляем письмо
mail($to,$subj,$body,$adds);

?>
Если вы, к примеру хотите, чтобы вместо адреса отправителя стояло его ФИО, то с переменной $from пишем следующее:

<?php
$from = $lname.$fname.'<'.$milo.'>';
?>
Ну с заголовком, телом и адресом получателя вы разберетесь без сторонней помощи. Посмотрим, как можно использовать переменную $adds, которая представляет собой добавочные заголовки.
Для того, чтобы по-человечески работала кнопка Reply в клиентском почтовике, пишем следующее:

<?php $adds = "From: ".$lname.' '.$fname.'<'$milo.'>'."nReplyTo: ".$lname.'
'.$fname.'<'$milo.'>'."nOrganisation: ".$org."n";
?>
Заголовок будет выглядеть так:
From: Иванов Иван Иваныч <ivan@ivanich.ru>
ReplyTo: Иванов Иван Иваныч
Organisation: Бобровод любитель

Если вы хотите, чтобы письмо было красиво оформленно рюшками с вашего сайта, добавим следующее:
<?php
$adds .= "Content-Type: text/html;charset=koi8-rn";
?>
Установить важность сообщения можно путем добавления следующего параметра:
<?php
$adds .= "X-Priority:3 (Normal)n";
?>
Соответственно 1 - самая высокая важность, 5 - самая низкая. Мелкософтовские мылеры (Outlook Express & M$ Outlook) пишут свой параметр в дополнение к этому заголовку. Выглядит это так:
<?php
$adds .= "X-MSMail-Priority:3";
?>
В параметре X-Mailer записано, при помощи какого софта письмо было создано и послано. Сюда вы можете написать что вашей душе угодно :)). Например:
<?php
$adds .= "X-Mailer: Mega Super AutoMailer by Vasya Pupkinn";
?>
Для того, чтобы получить уведомление о прочтении Вашего письма, включите следующую строку:
<?php
$adds .= "Diposition-Notification-To: mymail@myhost.mydomainn";
?>
Пока все. Надеюсь, что продолжение появится, а пока не забывайте ставить символ новой строки. :)))