Отправка письма с вложением PHP

Для отправки письма с вложением в PHP используется стандартная функция mail(). Чтобы прикрепить к письму файлы, нужно соответсвующим образом отредактировать данные header у писма. После поиска решения этой задачи я остановился на использовании класса PHPMailer. Скачать полную версию этого класса можете здесь. Из всего множества файлов нужен только class.phpmailer.php. В своих проектах я использую кодировку UTF-8, поэтому в классе я установил дефолтное значение поля public $CharSet = 'utf-8';

Для удобства я написал для себя функцию sendMail($to, $from, $subject, $message, $type="html", $attachment = array()).

$to - email адресата, либо массив из emaili адресатов
$form - от кого письмо. Либо просто email, либо массив из имени и email. В этом случае получатель увидит в графе от: Имя <from@mail.ru>
$subject - тема письма
$message - текст письма
$type - простой текст или html. Значения: "html", "text/plain"
$attachment - прикрепленные файлы. array(array('path' => ..., 'name' => ...) ...) path - полный путь к файлу, name - имя файла, которое увидит получаетель письма.

На локальных серверах часто не настроен почтовый сервер. Функции sendMail в этом случае сохраняет данные письма в текстовый файл. Если у вас не настроен почтовый сервер, замените if(true) на if(false) и пропишите путь к текстовому файлу, куда будут записываться данные письма.

Пример использования: 

  1. sendMail(
  2. to@mail.ru,
  3. array(
  4. 'email' => from@mail.ru,
  5. 'name' => 'Аноним'
  6. ),
  7. 'Тема письма',
  8. '<p>Текст письма</p>',
  9. 'html',
  10. array(array('path' => '/path_to_file/file.ext', 'name' => 'file.ext'))
  11. );

Комментарии

Добавить комментарий