Функции работы с почтой в Вебасисте реализованы на основе библиотеки 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(['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 [ // В качестве ключа указывается конкретный email отправителя, домен, или значение <code>default</code> - для настройки по умолчанию 'default' => [ 'type' => 'smtp', 'host' => 'АДРЕС SMTP-СЕРВЕРА', 'port' => 25, //'encryption' => 'ssl', //либо tls — в зависимости от требований SMTP-сервера ], // Настройка для всех ящиков @webasyst.com 'webasyst.com' => [ 'type' => 'mail' ], // Настройка для конкретного ящика 'user@webasyst.com' => [ 'type' => 'smtp', 'host' => 'АДРЕС SMTP-СЕРВЕРА', 'port' => 25, 'login' => 'ЛОГИН', 'password' => 'ПАРОЛЬ', //'encryption' => 'ssl', //либо tls — в зависимости от требований SMTP-сервера ], ];
При отправке сообщения подходящий транспорт автоматически будет выбран в зависимости от отправителя.