Если Вы разработчик приложения для Joomla, то, возможно, рано или поздно Вам придется столкнуться с необходимость отправки писем из системы управления содержимым сайта, инициированных Вашим плагином, модулем или компонентом. Делается это не очень сложно, далее я приведу конкретный пример кода для отправки e-mail сообщения с моими комментариями.

$mailer =& JFactory::getMailer(); //создаем объект для отправки письма
$config =& JFactory::getConfig(); //создаем объект для получения конфигурационной информации сайта
$sender = array($config->getValue('config.mailfrom'), $config->getValue('config.fromname')); //формируем информацию об отправителе
$mailer->setSender($sender); //заносим информацию об отправителе
$recipient = $email; // $email - адрес получателя, заданный Вами ранее, до приведенного мной кода
$mailer->ClearAddresses(); //очищаю предыдущие адреса (если письмо отправляется 1 раз, не требуется)
$mailer->addRecipient($recipient); //заношу информацию о получателе
$mla = '<b>Hello, World!</b>'; //формирую текст письма
$mailer->isHTML(true); //указываю, что письмо будет отправлено в формате HTML (более читабельном)
$mailer->setSubject('Здесь указывается тема письма');
$mailer->setBody($mla); //задаем тело
// Добавляем картинку по адресу JPATH_SITE.DS.'images'.DS.'build.jpg' в тело письма (не обязательно!)
$mailer->AddEmbeddedImage(JPATH_SITE.DS.'images'.DS.'build.jpg', 'logo_id', 'joomla_logo_black.jpg', 'base64', 'image/jpeg');
$send=&$mailer->Send(); //отправляю письмо


Обратите внимание на строку:

$mailer->ClearAddresses(); //очищаю предыдущие адреса (если письмо отправляется 1 раз, не требуется)

Если Вы отправляете одно и то же письмо в цикле нескольким получателям, то вот этот код:

$mailer->addRecipient($recipient); //заношу информацию о получателе

будет добавлять новых получателей к уже существующим перед каждой новой отправкой письма, в результате последний получатель получит письмо столько раз, сколько их всего было, что не корректно! Поэтому мною дан код для их очищения.

Успехов и удачных Вам проектов!

Add comment


Security code
Refresh