Рейтинг@Mail.ru
 

Шаг 1

Форматы

Отправка почты из скриптов на PHP - вещь, которая очень часто встречается в веб-приложениях. К сожалению, как показывает практика, большинство разработчиков используют эту функцию неправильно, допуская в своих скриптах одни и те же ошибки. В результате оказывается, что письмо получателю пришло в неверной кодировке, просто не дошло, или вообще неумело написанная форма отправки сообщения была использована для рассылки спама.

Сейчас мы научимся правильно работать с почтой, что бы избежать таких казусов.

Начнем с простого, с форматов.

Формат почтового сообщения описан в нескольких стандартизирующих документах, основными из которых являются RFC 822 и RFC 2045 Чтобы Ваши письма всегда и корректно доходили до адресата, нужно придерживаться этих стандартов.
Вот только сразу освоить их весьма непросто. Поэтому сейчас мы покажем основные моменты, которые позволят избежать неприятностей при любовной (или деловой) переписке. А дальше Вы сможете сами настраивать свои скрипты, соблюдая протокол.

И так, посмотрим, что же там внутри, из чего состоит почтовое сообщение. Если открыть в редакторе файл какого нибудь письма, то можно увидеть примерно следующее:

Нажми


Если Вы сохраните этот листинг с расширением .eml и откроете с помощью какого нибудь почтового клиента Outlook Express к примеру, то увидите содержимое письма. Именно в таком формате клиент для отправки почты подготавливает сообщение, а затем отправляет его получателю. Задача нашего скрипта - добиться точно такого же формата.

Как видно из приведенного выше примера, электронное письмо содержит две части: в одной (верхней) размещаются заголовки, а в другой (нижней) собствено текст письма. Отделены эти части друг от друга пустой строкой.

Заголовки состоят из строк, в которых содержится тема письма (Subject), имя и адрес отправителя (From), получателя (To) и другая информация.

Особенно необходимо подчеркнуть, что, согласно стандартам, в заголовках ни при каких обстоятельствах не должны содержаться русские буквы (вернее любые не латинские).

Письмо может быть двух видов - простой текст и текст с разметкой html. Кроме того, письмо может содержать вложенные файлы.

В php есть специальная функция, которая помогает отправить почтовое сообщение. Это функция mail(), о которой в следующем разделе.