Почта

Содержание...

Функции работы с почтой в Вебасисте реализованы на основе библиотеки Swift Mailer (библиотека включена в состав фреймворка). Следующий пример кода формирования и отправки электронного сообщения наглядно показывает все основные методы работы с почтой:

// Формирование объекта письма с адресатом $to, отправителем $from, 
// темой $subject и текстом $body
$mail_message = new waMailMessage($subject, $body);
// По умолчанию письмо формируется в HTML-формате.
// Если требуется отправка письма в text/plain, необходимо это указать явно:
$mail_message = new waMailMessage($subject, $body, 'text/plain');
// Указываем отправителя
$mail_message->setFrom('noreply@webasyst.com', 'Робот Вебасист');
// Задаём получателя   
$mail_message->setTo('ivan.sidorov@webasyst.com', 'Иван Сидоров');
// Можно так же указать массив из нескольких получателей в виде
$mail_message->setTo(array('ivan.sidorov@webasyst.com' => 'Иван Сидоров'));  
// Добавление получателей
$mail_message->addTo('vasya.pupkin@webasyst.com', 'Вася Пупкин');
$mail_message->addCc('petya.vaskin@webasyst.com', 'Петя Васькин');
$mail_message->addBcc('ivan.karlovich@webasyst.com', 'Иван Карлович');
// Добавление вложенного файла
// $path — полный путь до файла на сервере
// $filename — необязательный параметр: имя файла, которое будет отображаться в письме
$mail_message->addAttachment($path, $filename);
// добавить ещё одно вложение
$mail_message->addAttachment($path2, $filename2);
// Отправка письма
$mail_message->send();

Настройка транспорта (SMTP, sendmail)

По умолчанию для отправки писем используется функция mail().
Если вы хотите использовать другие транспорты, например SMTP, вам необходимо создать файл wa-config/mail.php.
Вы можете настроить разные транспорты в зависимости от отправителя (поле From).

<?php
return array(
    // В качестве ключа указывается конкретный email отправителя, домен, или значение <code>default</code> - для настройки по умолчанию
    'default' => array(
        'type' => 'smtp',
        'host' => 'ВАШ SMTP - сервер',
        'port' => 25,
        //'encryption' => 'ssl',
        //либо tls — в зависимости от требований SMTP-сервера
    ),
    // Настройка для всех ящиков @webasyst.com
    'webasyst.com' => array(
          'type' => 'mail'
    ),
    // Настройка для конкретного ящика
    'user@webasyst.com' => array(
        'type' => 'smtp',
        'host' => 'ВАШ SMTP - сервер',
        'port' => 25,
        'login' => 'ЛОГИН',
        'password' => 'ПАРОЛЬ',
        //'encryption' => 'ssl',
        //либо tls — в зависимости от требований SMTP-сервера
    )
);

При отправке сообщения подходящий транспорт автоматически будет выбран в зависимости от отправителя.