13:55 03.05.2012
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(array('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 читайте в документации.
Вышеописанные изменения выполнены в рамках работы над приложениями «Рассылки» и «Поддержка» (приложения в разработке).
read more at Webasyst