Большинство WEB-проектов требуют работы с почтой. На языке PHP есть инструменты для отсылки почты, но они явно не блещут функционалом. В основном, приходится писать самому мини-библиотеки для работы с e-mail рассылкой. Что касается меня, то я использовал в основном класс PHPMailer.
Совсем недавно в интернете набрёл на довольно интересный класс, предназначенный для работы с почтой, называется Swift (http://www.swiftmailer.org/). Даже наверно будет более правильно назвать его не классом, а полноценной библиотекой для работы с почтой на PHP, потому что она включает в себя несколько отдельных классов связанных между собой.
Swift – это библиотека, полностью написанная на ООП, предназначенная для отсылки почты из PHP скриптов и приложений. Понятное дело, что она не использует стандартную функцию mail(), у которой самым слабым местом является высокое потребление серверных ресурсов во время рассылки нескольких сообщений. Swift напрямую работает с SMTP сервером или MTA (Mail Transfer Agent), что позволяет ему делать рассылку быстро и эффективно.
Ранние версии Swift были сопоставимы с классом PHPMailer, но сейчас библиотека переросла в полностью отлаженный программный комплекс для рассылки почты. Несмотря на богатый функционал, интерфейс остался интуитивно понятным и доступным для освоения.
Самым главным достоинством, на мой взгляд, которое отличает эту библиотеку от остальных – это поддержка плагинов. Механизм взаимодействия плагинов основан на событиях. Они обеспечивают потрясающую гибкость библиотеке Swift. За время развития библиотеки она была неоднократно серьёзно переписана, как утверждает автор, и сейчас максимально совместима с RFC 2822.
Работать со Swift очень легко и удобно, чувствуется детальная проработка интерфейса. В доказательство приведу простенький пример отсылки HTML e-mail:
< ?php
//подключаем библиотеку
require_once "lib/Swift.php";
require_once "lib/Swift/Connection/SMTP.php";
//создаём объект Swift
$swift =& new Swift(new Swift_Connection_SMTP("server.tld", 25));
//формируем непосредственно само письмо
$message =& new Swift_Message("Здесь тема письма", "Непосредственно тело письма в виде HTML текста");
//задаём тип содержимого письма как text/html
$message->setContentType("text/html");
//отсылка письма
if ($swift->send($message, "to@domain.my", "from@home_domain.my"))
{
echo "Письмо успешно отослано";
}
else
{
echo "Ошибка отсылки email";
}
//Очень желательно это делать, когда работа с почтой закончена
$swift->disconnect();
Напоследок приведу веские аргументы, почему этот класс для работы с почтой лучше остальных конкурентов в своём классе:
- поддерживается постоянное соединение, увеличивающее быстродействие;
- расширяемые типы соединений, которые задаются пользователем;
- поддерживаются разные типы аутентификации SMTP (LOGIN, PLAIN, MD5-CRAM, POP Before SMTP);
- есть поддержка SSL и TLS (необходимая для Gmail серверов);
- полный контроль над заголовками и требованиями RFC 2822;
- поддержка локализации (интернационализация i18n);
- есть баланс загрузки и управление потоками, поставляется с монитором полосы пропускания;
- удобная работа с вложениями, корректная работа с любыми типами файлов и любым количеством вложений;
- полностью включена библиотека MIME 1.0;
- поддержка пакетной обработки почты;
- умеет отправлять в письмах вложения любого размера, даже если выставлено 8Mb ограничение в PHP;
- присутствует защита от header injection;
- есть возможность выставлять приоритет сообщения;
- есть анти-flooding защита, необходимая для серверов с ограничением количества писем с одного соединения;
- и самое главное, на мой взгляд, - расширяемая система плагинов, которые легко писать.
Комментариев нет:
Отправить комментарий