waMailMessage. Обновление в работе с почтой

В версии фреймворка 1.0.7 (уже доступна для загрузки) изменился инструментарий отправки почты. Теперь в состав ядра фреймворка входит библиотека Swift Mailer, и вся работа с почтой осуществляется на ее основе. В wa-system созданы классы-обертки, унаследованные от Swift. Обновленная статья документации по работе с почтой: http://www.webasyst.com/ru/framework/docs/dev/mail/

Вниманию разработчиков: Старые методы отправки почты более не работают.
Необходимо обновить методы и параметры, которые вы используете для отправки почты в ваших приложениях.

Напомню, что раньше работа с почтой осуществлялась через классы waMailMessage и waMail:

// Формирование объекта письма с адресатом $to, отправителем $from, 
// темой $subject и текстом $body
$mail_message = new waMailMessage($to, $subject, $body, $from);
// По умолчанию письмо формируется в HTML-формате.
// Если требуется отправка письма в text/plain, необходимо это указать явно:
$mail_message->setContentType('plain');
// Добавление получателей
$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 = new waMail();
$mail->send($mail_message);
// Альтернативный способ отправки письма
$mail_message->send();
// Альтернативный способ формирования и отправки простых писем:
$mail = new waMail();
$mail->send($to, $subject, $body, $from);

Теперь отправка почты работает только через класс waMailMessage. При обновлении ваших приложений внимательно обновите методы и параметры отправки, чтобы сообщения продолжали уходить адресатам:

$mail_message = new waMailMessage($subject, $body); // по умолчанию считается тело письма text/html
//Если нужно text/plain, то
$mail_message = new waMailMessage($subject, $body, 'text/plain');
$mail_message->setFrom('noreply@webasyst.com', 'Робот');
$mail_message->setTo(array('vasya.pupkin@webasyst.com' => 'Вася Пупкин'));

Теперь отправителя и получателей необходимо укзывать в виде массива: array($email => $name)

Добавление вложений не изменилось:

$mail_message->addAttachment($path, $filename);

Отправка сообщения:

$mail_message->send();

Класс waMail, который ранее использовался для отправки сообщения, в данный момент используется только для системных целей. Позже мы планируем написать по нему дополнительную документацию (класс позволит, например, переопределять транспорт при отправке отдельных сообщений).

В версии 1.0.7 фреймворк также научился отправлять письма через SMTP. О настройке SMTP читайте в документации.

Вышеописанные изменения выполнены в рамках работы над приложениями «Рассылки» и «Поддержка» (приложения в разработке).