Как отправить e-mail из своего расширения
Ссылка на глобальный объект электронной почты JMail
получается с помощью объекта JFactory
. Это создание нашего объекта JMail
.
$mailer =& JFactory::getMailer();
Получение объекта электронной почты
Ссылка на глобальный объект электронной почты JMail
получается с помощью объекта JFactory
. Это создание нашего объекта JMail
.
$mailer =& JFactory::getMailer();
Установка отправителя
Отправитель письма устанавливается с помощью метода JMail->setSender. Функция принимает массив с адресом электронной почты и именем в качестве аргумента. Мы получили имя и адрес электронной почты из глобальной конфигурации сайта. Они устанавливаются в административной части сайта (Общие настройки -> Сервер -> Настройки почты).
$config =& JFactory::getConfig(); $sender = array( $config->getValue(’config.mailfrom’), $config->getValue(’config.fromname’) ); $mailer->setSender($sender);
Установка получателя
Вы устанавливаете получатель электронной почты с помощью метода JMail->addRecipient. Для того что-бы задать e-mail адрес текущего авторизованного пользователя, мы возьмём его из объекта пользователя.
$user =& JFactory::getUser(); $recipient = $user->email; $mailer->addRecipient($recipient);
Если у нас есть несколько адресатов, мы можем отправить их в виде массива.
$recipient = array(’person1@domain.com’, ’person2@domain.com’, ’person3@domain.com’); $mailer->addRecipient($recipient);
Создание письма
Мы должны указать тему письма и создать содержимое. тема письма устанавливается с помощью метода JMail->setSubject.
Простой способ создания сообщения в виде строки текста. Используйте функцию
$body = "Your body string in double quotes if you want to parse the newlines etc"; $mailer->setSubject(’Your subject string’); $mailer->setBody($body); // Optional file attached $mailer->addAttachment(PATH_COMPONENT.DS.’assets’.DS.’document.pdf’);
Если вы предпочитаете HTML-формат письма, вы должны это указать. Это делается с помощью метода
$body = ’<h2>Our mail</h2>’ .’<div>A message to our dear readers’ .’<img src="cid:logo_id" alt="logo"/></div>’; $mailer->isHTML(true); $mailer->setBody($body); // Optionally add embedded image $mailer->AddEmbeddedImage(PATH_COMPONENT.DS.’assets’.DS.’logo128.jpg’, ’logo_id’, ’logo.jpg’, ’base64’, ’image/jpeg’);
Как правило, вы отправляете все изображения на сервер и вставляете обычным HTML-тегом изображения, для уменьшения размера почты и времени отправки.
Отправка почты
Письмо отправляется с помощью метода JMail->Send. Он возвращает true при успешной отправке или объект ошибки JError.
$send =& $mailer->Send(); if ($send !== true) { echo ’Error sending email: ’.$send->message; } else { echo ’Mail sent’; }
Возможно вы хотите написать свой обработчик ошибок.
Объект JMail используется для отправки почты в компоненте контактов. Смотрите файл joomla/components/com_contact/controller.php.
Нет комментариев. Ваш будет первым!