Поради по php відправлення листів за допомогою php прикріплення файлу

Відправка листів за допомогою PHP: Прикріплення файлу

Лист, що містить прикріплений файл, дещо відрізняється від простого. У ньому додаються деякі заголовки, і трохи змінюється сама побудова, хоча безсумнівно сам лист залишається текстовим файлом. Але давайте все по порядку.

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

Цей заголовок вказує стандарт, якому відповідав би тіло повідомлення.

Повідомлення, відповідні MIME зобов'язані утримувати таке поле заголовка з наступним текстом:

Якщо ми хочемо відіслати листа з прикріпленими файлами, то необхідно використовувати заголовок

який позначає, що лист складається з декількох частин, кожна з яких містить свій заголовок Content-type.

Для позначення кордону цих частин необхідно використовувати параметр boundary. який ще називається маркером кордону.

Значення цього параметра може служити будь-який рядок. Але треба врахувати, що вона повинна бути унікальною і не зустрічалася в тілі листа. Інакше лист може бути неправильно розбите на частини.

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

А останній маркер, який позначає кінець листи, повинен містити в кінці два знака дефіса.

Для кожної частини необхідно встановити свої заголовки.

Після заголовків необхідно поставити два знаки перекладу рядка.

Якщо у нас йде частина з текстом, то треба заголовок Content-Transfer-Encoding привласнити значення quoted-printable. або 7bit. або 8bit.

Для частини з файлом цей заголовок має дорівнювати base64.

Тема Content-Disposition. присутній у другій частині, вказує, як поштовій програмі слід відобразити дану частину листа. Він може приймати значення attachment (ця ділянка не є частиною листа, а просто прикріплений до нього у вигляді файлу) і inline (включення, яке використовується безпосередньо в листі, наприклад, картинка, що вставляється в HTML).

У першій частині заголовком

вказали, що це простий текст з кодуванням Windows.

У другій же частині заголовком

вказали, що тип файлу - rar-архів, а ім'я файлу - file.rar.

Якщо відправляємо gif-картинку, його Content-type буде виглядати:

У разі, якщо заздалегідь не відомо, який тип файлу відправляємо, або формат файлу не є стандартним, слід заголовку Content-type привласнити значення application / octet-stream.

Прикріплені файли повинні бути розміщені в листі в форматі base64. Перетворити файл у цей формат можна за допомогою PHP-функції base64_encode ().

Тепер змінну $ str_file. яка містить файл, можна вставляти в лист.

echo "Повідомлення не відправлено!";>;

Схожі статті