Проблеми з кодуванням при відправці email листів за допомогою php ми вже розібрали в попередній частині нашої статті. Давайте розберемося з рештою питаннями.
Отже, на порядку денному: використання вкладень і вставка зображення в тіло листа.
Напевно багатьом на пошту приходили гарні листи з версткою і картинками. А відправляючи листи власноруч, приходить негарний текст. У даній статті ми навчимося відправляти листи з красивою версткою і картинками. що часто буває необхідно при відправці розсилок.
Якщо ви коли-небудь стикалися з відправкою таких листів, то, швидше за все у вас часто виникали такі проблеми:
- вкладений файл не відкривається або відкривається неправильно
- не відображається текст
- картинку можна скачати, але вона не вставляється в тіло листа.
Давайте, спробуємо з усім цим розібратися.
Для відправки листів з вкладеннями використовується спеціальний формат, який називається multipart. У заголовках (headers) він вказується як Content-type: multipart / mixed; boundary =. При цьому тіло листа складається з шматочків (кожен шматочок - це частина листа, текст або вкладення), які поділяються значенням boundary. Кожен шматочок має свої заголовки (звичайно ж Content-type, ну і інші).
Написаний раніше клас для роботи з поштою я модифікував під відправку multipart повідомлень:
Тут функція send () перевіряє кількість «шматочків». Якщо «шматочок» один, то відправляє його як текст. Адже multipart нам не потрібен, якщо ми відправляємо тільки текст.
Функції attachment () і body () прикріплюють текст або вкладення. Принцип їх роботи, я думаю, зрозумілий.
Відправлення листів з вкладеннями не представляє складності. Тут я прикріплюю картинку і zip-архів:
Приклад листа, який надійшов мені.
Вітаємо! Ви навчилися відправляти листи з вкладеннями.