Пакет mail предназначен для отправки почты, как с помощью известной библиотеки PHPMailer, так и стандартными средствами ОС. Помимо этого, опционально, пакет предоставляет средства для использования шаблонов MACRO в качестве шаблонов писем, а так же средства отладки.
$mailer = new lmbMailer(); $recipients = array( array("name" => "Sam", "address" => "sam@somehost.com"), "todd@somehost.com" ); $sender = 'bob@somehost.com'; $subject = 'new movie'; $text = 'Hello'; $html = '<h1>Hello</h1>'; $mailer->addAttachment('/www/attachments/movie.flv', $name = "Super movie"); $mailer->embedImage('/www/images/thumb.png', $cid = mt_rand(), $name=" Thumb for super movie"); //отправка текстового письма $mailer->sendPlainMail($recipients, $sender, $subject, $text); //отправка html письма $mailer->sendHtmlMail($recipients, $sender, $subject, $html, $text, $charset = 'cp-1251');
Находится в settings/mail.conf.php
В старых версиях пакета для конфигурирования lmbMailer использовались константы, заданные с помощью директив define(), а так же функциями lmb_env_set() и lmb_env_setor(). Этот способ хотя и поддерживается, но настоятельно не рекомендуется.
Опция конфига | Константа | Значение по умолчанию | Описание |
---|---|---|---|
use_phpmail | LIMB_USE_PHPMAIL | false | использовать mail() (вместо него будет использоваться SMTP) |
smtp_host | LIMB_SMTP_HOST | 'localhost' | хост SMTP сервера |
smtp_port | LIMB_SMTP_PORT | '25' | порт SMTP сервера |
smtp_auth | LIMB_SMTP_AUTH | false | использовать ли авторизацию на SMTP сервере |
smtp_user | LIMB_SMTP_USER | - | имя пользователя SMTP |
smtp_password | LIMB_SMTP_PASSWORD | - | пароль SMTP |
Также при создании объекта lmbMailer можно передать массив c опциями в конструктор. Названия параметров этого массива совпадают с названиями опций конфига. Значения, переданные в конструктор, перекрывают значения взятые из mail.conf.php
.
$custom_config = array( 'smtp_user' => 'user', 'smtp_password' => 'password'); $mailer = new lmbMailer($custom_config);
Например мы хотим отправить пользователю сообщение, что он удачно купил трактор в нашем магазине. Создаем шаблон письма.
Поздравляем с покупкой трактора {#tractor.title} Поздравляем! Вы, или ваш тайный доброжелатель, только что купили новенький {#tractor.title} на нашем замечательном сайте vtraktore.ru. По смешной цене "{$#tractor.price}" рублей. Посмотреть на это чудо инженерного гения можно на странице {$#tractor.profile_url}. <h2>Поздравляем!</h2> <p>Вы, или ваш тайный доброжелатель, только что купили новенький {#tractor.title} на нашем замечательном сайте vtraktore.ru.</p> <p>По смешной цене "{$#tractor.price}" рублей.</p> Посмотреть на это чудо инженерного гения можно на странице <a href="{$#tractor.profile_url}">{$#tractor.profile_url}</a>.
Шаблон состоит из трех частей: темы письма, txt-части и html-части (не обязательной). Части разделяются символом \n\n. Назовем шаблон tractor_sold.phtml и поместим его в директорию _mail, в директории шаблонов (что-то типа template/_mail/tracor_sold.phtml).
Приступим непосредственно к отправке:
$tractor = new stdClass(); $tractor->title = 'Советский турбовинтовой мирный трактор, среднего радиуса действия'; $tractor->price = 4999999; $tractor->profile_url = 'http://lurkmore.ru/Мирный_советский_трактор'; $service = new lmbMailService('tractor_sold'); $service->set('tractor', $tractor); $service->sendMailTo('petya-the-pig@gmail.com');
Мейлеры это объекты, которые отвечают за непосредственно отправку письма ( интерфейс lmbBaseMailerInterface). В данный момент поддерживаются следующие мейлеры:
В данный момент выбор мейлера происходит в самом lmbMailService. В будущем инстанцирование и настройка мэйлера будет вынесена в toolkit.
Выбор мэйлера происходит на основе переменной mode конфигурационного файла settings/mail.conf.php следующим образом:
Значение | Описание |
---|---|
null | По умолчанию. Используется lmbMailer |
testing | Используется lmbMemoryMailer |
devel | Используется lmbResponseMailer |
Обсуждение