Онлайн-руководство разработчика NetCat
Новогодние скидки до 25%!
Подробнее
Модуль «Поиск по сайту» 12.2.1Начало работы с модулем 12.2.2Язык запросов 12.2.3Способы хранения индекса 12.2.4Интерфейс модуля в панели управления сайтом 12.2.5Области индексирования 12.2.6Области HTML-страниц 12.2.7Области поиска на сайте 12.2.8Индексирование по расписанию, запуск индексирования в фоновом режиме 12.2.9Правила индексирования 12.2.10Постановка задачи переиндексирования в очередь 12.2.11Интеграция модуля в макеты дизайна сайта 12.2.12Простая форма поиска 12.2.13Расширенная форма поиска 12.2.14Вывод результатов поиска 12.2.15Стилизация списка подсказок 12.2.16Расширенные настройки 12.2.17Разработка расширений модуля 12.2.18Обзор архитектуры модуля 12.2.19Обработчики документов различных типов 12.2.20Текстовые фильтры 12.2.21Анализаторы текста 12.2.22Корректировщики запросов 12.2.23Подключение других поисковых систем 12.2.24Решение проблем с поиском 12.2.25Решение проблем с индексированием 12.2.26Справочник API

Класс работы с письмами (mail)

Доступность: везде

Класс является частью функционала по рассылке писем. Позволяет отсылать одиночные письма, в том числе и с вложениями. Формирует заголовки писем, позволяя наиболее правильно соответствовать совместимости с разного рода почтовыми сервисами и программами.

Инициализация

Для работы с классом необходимо создать объект этого класса:

$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);
Описание проекта