Доступность: везде
Класс является частью функционала по рассылке писем. Позволяет отсылать одиночные письма, в том числе и с вложениями. Формирует заголовки писем, позволяя наиболее правильно соответствовать совместимости с разного рода почтовыми сервисами и программами.
Для работы с классом необходимо создать объект этого класса:
$mailer = new CMIMEMail();
Для смены кодировки письма требуется вызвать метод класса setCharset(), указав в параметре требуемую кодировку. По умолчанию используется windows-1251 в случае использовании русского языка и ISO-8859-1 для английского.
$mailer->setCharset('koi8r');
Класс позволяет отправлять письма в виде простого текста, html-письма и письма с вложениями (с прикрепленными файлами).
Самый просто случай — это письма с простым текстом без вложения. В этом случае необходимо вызвать метод класса mailbody, указав в параметре текст письма.
$mailer->mailbody("Я письмо!");
или так :
$text = "Простой текст простого письма"; $mailer->mailbody($text);
В случае html-письма без вложения письмо отправляется в двух видах: простом тексте и html-виде (тип содержания в этом случае multipart/alternative). Если почтовый клиент не поддерживает html (или показ сообщения html был отключен), то будет показываться простой тескт, иначе — текст в виде html.
Простой текст задается первым параметром метода mailbody, html-текст — вторым.
$text = "<b>Привет!</b>"; $mailer->mailbody( strip_tags($text), $text);
В этом случае, если пользовательский почтовый клиент может показывать html-письма выведется «Привет!», а если нет — то просто текст «Привет!».
Возможен такой варинт:
$mailer->mailbody("К сожалению, Ваш почтовый клиент не может показать это письмо, так как оно в виде html", $text);
Для создания вложения нужно вызвать метод attachFile, передав ему путь к файлу, имя файла и его тип.
$mailer->attachFile("../attach.doc", "имя_файл.txt", "application/octet-stream");
Чтобы прикрепить несколько файлов, этот метод нужно вызвать нужное количество раз:
$mailer->attachFile("../1h.doc", "1.txt", "application/octet-stream"); $mailer->attachFile("../2.doc", "2.txt", "application/octet-stream"); $mailer->attachFile("../2.doc", "3.txt", "application/octet-stream");
Для установки одного получателя копии письма можно вызвать метод set_cc, передав в параметрах адрес назначения и (необязательно) имя получателя.
$mailer->set_cc("получатель_копии@адрес.ru", "Какой-то-Какойтович");
Для установки нескольких получателей копии письма нужно вызвать метод set_cc, передав первым параметром массив, где значениями будут адреса назначения. Если необходимо передать имя адресата, тогда адрес получателя используется в качестве ключа массива, а имя адресата в качестве значения.
$mailer->set_cc(array( "получатель_копии_1@адрес.ru", "получатель_копии_2@адрес.ru" => "Какой-то-Какойтович", "получатель_копии_3@адрес.ru", "получатель_копии_4@адрес.ru" ));
Для установки одного получателя скрытой копии письма можно вызвать метод set_bcc, передав в параметрах адрес назначения и (необязательно) имя получателя.
$mailer->set_bcc("получатель_скрытой_копии@адрес.ru", "Какой-то-Какойтович");
Для установки нескольких получателей скрытой копии письма нужно вызвать метод set_bcc, передав первым параметром массив, где значениями будут адреса назначения. Если необходимо передать имя адресата, тогда адрес получателя используется в качестве ключа массива, а имя адресата в качестве значения.
$mailer->set_bcc(array( "получатель_скрытой_копии_1@адрес.ru", "получатель_скрытой_копии_2@адрес.ru" => "Какой-то-Какойтович", "получатель_скрытой_копии_3@адрес.ru", "получатель_скрытой_копии_4@адрес.ru" ));
Для отправки письма нужно вызвать метод send, передав в параметрах адрес назначения, с какого адреса пришло письмо, адрес для ответа, тему письма и имя отправителя.
$to = "кому@адрес.ru"; $from = "от_кого@aдрес.ru"; $reply = "ответ_прислать_сюда@адрес.ru"; $from_name = "Имя отправителя"; $subject = "Тема письма"; $mailer->send($to, $from, $reply, $subject, $from_name);
$to = "кому@адрес.ru"; $cc = "получатель_копии@aдрес.ru"; $bcc = "получатель_скрытой_копии@aдрес.ru"; $from = "от_кого@aдрес.ru"; $reply = "ответ_прислать_сюда@адрес.ru"; $from_name = "Имя отправителя"; $subject = "Тема письма"; $text = "<b>Привет!</b>"; $mailer = new CMIMEMail(); $mailer->set_cc($cc); $mailer->set_bcc($bcc); $mailer->mailbody(strip_tags($text), $text); $mailer->attachFile("../attach.doc", "имя_файл.txt", "application/octet-stream"); $mailer->send($to, $from, $reply, $subject, $from_name);