Справочник по PHP




Прикрепление файла


Письмо, содержащее прикрепленный файл, несколько отличается от простого. В нем добавляются некоторые заголовки, и немного меняется само построение, хотя несомненно само письмо остается текстовым файлом. Но давайте все по порядку.

Одна из особенностей - наличие заголовка Mime-Version.

Этот заголовок указывает стандарт, которому соответствует тело сообщения.

Сообщения, соответствующие MIME обязаны содержать такое поле заголовка со следующим текстом:

MIME-Version: 1.0

Если мы хотим отослать письмо с прикрепленными файлами, то необходимо использовать заголовок Content-type: multipart/mixed, который обозначает, что письмо состоит из нескольких частей, каждая из которых содержит свой заголовок Content-type.

Для обозначения границы этих частей необходимо использовать параметр boundary, который еще называется маркером границы.

Значением этого параметра может служить любая строка. Но надо учесть, что она должна быть уникальной и не встречалась в теле письма. Иначе письмо может быть неправильно разбито на части.

From: "Uspenskii Evgeny" <evgeny@spravkaweb.ru>To: user@domain.ruSubject: HelloMime-Version: 1.0Content-Type: multipart/mixed; boundary="spravkaweb-12345"

При разделении письма на части перед маркером должны стоять два знака дефиса.

А последний маркер, который обозначает конец письма, должен содержать в конце два знака дефиса.

Для каждой части необходимо установить свои заголовки.

После заголовков необходимо поставить два знака перевода строки.

From: "Uspenskii Evgeny" <evgeny@spravkaweb.ru>To: user@domain.ruSubject: HelloMime-Version: 1.0Content-Type: multipart/mixed; boundary="spravkaweb-12345"--spravkaweb-1234Content-type: text/plain; charset="windows-1251"Content-Transfer-Encoding: quoted-printable Hi!Here's that my file! --spravkaweb-1234Content-Type: application/x-rar-compressed; name="file.rar"Content-Transfer-Encoding:base64Content-Disposition:attachment UmFyIRoHAM+QcwAADQAAAAAAAABvYXQg ......spravkaweb-1234--




Содержание  Назад  Вперед