WebScript.Ru
C:\   главная  ::   о сайте  ::  каталог скриптов  ::  гнездо  ::  форум  ::   авторам  :: Новостройки ::   ХОСТИНГ  ::

|| разделы::
|| поиск по сайту::

|| реклама::
|| новости почтой::
Рассылки Subscribe.Ru ::



Новости сайта WebScript.Ru
Популярные статьи

Hot 5 Stories

|| рекомендуем::




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


Прислал: Аркадий Бабулин [ 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";
?>
Пока все. Надеюсь, что продолжение появится, а пока не забывайте ставить символ новой строки. :)))


 :::::  Maxim Matyukhin пишет 27.10.2001 @ 17:42 

А как насчет заголовка
Content-Transfer-Encoding: 8bit

И насколько я знаю рекомендуется делать не "\n" а "\r\n" для разделения заголовков.
Да и в случае посылки текста в html-формате желательно в письмо еще вкладывать такой же текст но в формате text/plain (теги конечно из этого текста нужно убрать).

И ты наверное забыл сказать что письма желательно слать в koi8-r, а значит в некоторых скриптах нужно через convert_cyr_string() перекодировать все строки в koi8-r. А то тут щас некоторые начнут слать письма по твоим советам и будут на тебя гнать что ничего не работает :)))


 :::::  MatriX.ME пишет 27.10.2001 @ 20:40 
А где скачать сам скрипт...?
 :::::  ThE0ReTiC пишет 29.10.2001 @ 18:01 
2 Maxim Matyukhin:
А заголовок Content-Transfer-Encoding не все клиенты корректно обрабатывают.
\r\n по спецификации нужен, но лично моя практика показала, что строки, разделенные только символом \n обрабатываются корректно.
Проблема кодировки писем - это отдельная тема. Здесь рассматривается только обработка заголовочной информации, хотя конечно делать это необходимо. Это можно сделать и перед самой отправкой письма.
2Matrix.ME:
Недели через две с моего сайта. Ссылку я тебе пришлю. Если нужно совсем срочно - отпиши.
 :::::  Maxim Matyukhin пишет 29.10.2001 @ 19:02 
2ThE0ReTiC
>А заголовок Content-Transfer-Encoding не все клиенты корректно обрабатывают.
Какие например? Как тогда этот почтовый менеджер может отличать 8bit от base64 или quoted-printable?


 :::::  ThE0ReTiC пишет 29.10.2001 @ 19:06 
M$ Outlook некорректно обрабатывает эти заголовки. К сожалению. У меня все скрипты без указания этого аттрибута нормально обрабатываются. Причем я на трех осях проверял. Это нужно указывать при компоновке сложного письма, с аттачами и прочей мишурой.
 :::::  Maxim Matyukhin пишет 29.10.2001 @ 22:00 
2ThE0ReTiC
>M$ Outlook некорректно обрабатывает эти заголовки.
А что значит "некотректно обрабатывает эти заголовки"?
Все письма которые мне приходят, я смотрю Аутглюком. И во всех письмах есть заголовок
Content-Transfer-Encoding: quoted-printable
или
Content-Transfer-Encoding: 8bit
И все письма нормально просматриваются.

Только что даже проверил как работает мой скрипт. Делал такой хедер
$header="From: $from\r\n
Mime-Version: 1.0\r\n
Content-Type: text/plain; charset=\"koi8-r\"\r\n
Content-Transfer-Encoding: 8bit";

В Outlook-е 5 все нормально читается.

 :::::  ThE0ReTiC пишет 29.10.2001 @ 22:04 
В OE да, а в Outlook 200 нет, я проверял :(
 :::::  Bronislav пишет 05.11.2001 @ 13:03 
Для того, чтобы получить уведомление о прочтении Вашего письма, включите следующую строку:
$adds .= "Diposition-Notification-To: mymail@myhost.mydomainn";
____________________
Следует писать/читать ;))
$adds .= "Disposition-Notification-To: mymail@myhost.mydomainn";


 :::::  ThE0ReTiC пишет 05.11.2001 @ 14:07 
2 Bronislav
Ну да. Описался. Виноват. Больше не буду. :)))
 :::::  Edik пишет 01.01.2002 @ 01:17 
А где взыть простейший скрипт для отправки письма? только чтобы о обяснением?
 :::::  Edik пишет 01.01.2002 @ 01:17 
А где взыть простейший скрипт для отправки письма? только чтобы о обяснением?
 :::::  Kostik пишет 24.01.2002 @ 17:07 
Вопрос...
А как к этому письму файл присоединть?
 :::::  Doctor[X] пишет 19.02.2003 @ 09:55 
А у кого есть этот скрипт в полностью рабочем виде?
Может пришлёте? :mol: :)
doctorx@land.ru
 :::::  mirk пишет 26.04.2003 @ 22:20 
Если не сложно вышлите и мне тоже скрипт.
Спасибо.
 :::::  Дима пишет 04.11.2004 @ 22:31 
Здравствуйте!!!
Пришлите мне пожайлуста JavaScript для отправления почты на E-Mail!!!
За ранее спасибо
Имя:
Email:
URL

Введите сумму двух чисел девять и одинн (девять+одинн=?)
Запомнить мою информацию

* Html запрещен* Ваш E-mail опубликован не будет.

Copyright © 2000-2001 WebScript.Ru nas@webscript.ru
Design © 2001 by Parallax Design Studio (aka Spectator.ru)
Все торговые марки и авторские права на эту страницу принадлежат их соответствующим владельцам.
Сгенерировано за: 0.0145938