Почтовый класс (образец)
Шаг 1. Форматы | Шаг 3. Защита от спама. | Шаг 5. Альтернатиивные варианты |
Шаг 2. Функция mail | Шаг 4. HTML и вывод ошибок | Шаг 6. Прикрепление файлов |
Шаг 1
Форматы
Отправка почты из скриптов на PHP – вещь, которая очень часто встречается в веб-приложениях. К сожалению, как показывает практика, большинство разработчиков используют эту функцию неправильно, допуская в своих скриптах одни и те же ошибки. В результате оказывается, что письмо получателю пришло в неверной кодировке, просто не дошло, или вообще неумело написанная форма отправки сообщения была использована для рассылки спама.
Сейчас мы научимся правильно работать с почтой, что бы избежать таких казусов.
Начнем с простого, с форматов.
Формат почтового сообщения описан в нескольких стандартизирующих документах, основными из которых являются RFC 822 и RFC 2045 Чтобы Ваши письма всегда и корректно доходили до адресата, нужно придерживаться этих стандартов.
Вот только сразу освоить их весьма непросто. Поэтому сейчас мы покажем основные моменты, которые позволят избежать неприятностей при любовной (или деловой) переписке. А дальше Вы сможете сами настраивать свои скрипты, соблюдая протокол.
И так, посмотрим, что же там внутри, из чего состоит почтовое сообщение. Если открыть в редакторе файл какого нибудь письма, то можно увидеть примерно следующее:
Нажми
Если Вы сохраните этот листинг с расширением .eml и откроете с помощью какого нибудь почтового клиента Outlook Express к примеру, то увидите содержимое письма. Именно в таком формате клиент для отправки почты подготавливает сообщение, а затем отправляет его получателю. Задача нашего скрипта – добиться точно такого же формата.
Как видно из приведенного выше примера, электронное письмо содержит две части: в одной (верхней) размещаются заголовки, а в другой (нижней) собствено текст письма. Отделены эти части друг от друга пустой строкой.
Заголовки состоят из строк, в которых содержится тема письма (Subject), имя и адрес отправителя (From), получателя (To) и другая информация.
Особенно необходимо подчеркнуть, что, согласно стандартам, в заголовках ни при каких обстоятельствах не должны содержаться русские буквы (вернее любые не латинские).
Письмо может быть двух видов – простой текст и текст с разметкой html. Кроме того, письмо может содержать вложенные файлы.