Инструкция SMTP PHPMailer — свойства и методы класса
Любой backend программист php сталкивается с задачей автоматизации почтовой рассылки на веб сайтах и многие,
кто сталкивался с данной задачей впервые, вставали перед ключевым вопросом: «Писать или не писать smtp клиент с нуля?».
Любой backend программист php сталкивается с задачей автоматизации почтовой рассылки на веб сайтах и многие, кто сталкивался с данной задачей впервые, вставали перед ключевым вопросом: «Писать или не писать smtp клиент с нуля?». Если вы решите самостоятельно реализовать функционал smtp клиента на языке php, да и любом другом аналогичном языке, то вы столкнетесь с весьма рутинной и скучной работой, т.к. основный механизм работы с smtp серверами заключается в обмене текстовыми сообщениями и ничем больше. Но, к счастью, этого и не требуется! Все что нужно, уже написано в герое сегодняшней статьи — класс PHPMailer.
Класс PHPMailer дает нам возможность легко и быстро писать скрипты рассылки почтовых уведомлений с гибкой системой отладки данного скрипта. Скрипт написан на языке программирования PHP и поддерживает стандарты криптографического шифрования при обмене сообщениями с сервером TLS\SSL.
Для использования PHPMailer на своем сервере вам необходима возможность подключения к внешним SMTP серверам при помощи PHP.
Возможности SMTP клиента PHPMailer.
- Отправка E-mail с множественными адресатами;
- Поддерживает 8 бит, base64, бинарного режима, и пригодного для печати формата;
- SMTP авторизация на стороне сервера;
- Перенос слов (word wrap);
- Отправлять сообщения в виде HTML;
- Библиотека проверена на множестве SMTP серверах: Sendmail, qmail, Postfix, Imail, Exchange, Mercury, Courier;
- Работает на любой win32 и *nix платформе;
- Гибкость отладочной работы — реализована система вывода подробнейшего лога общения с SMTP сервером;
- Определяемые вручную заголовки писем;
- Совмещение нескольких сообщений и вложений;
- Встроенная поддержка изображений.
- Отправка писем различными способами: через smtp сервер, утилитой sendmail и Qmail, функцией mail()
Установка и первоначальная подготовка SMTP клиента PHPMailer к работе
Прежде всего необходимо скачать свежую версию SMTP библиотеки: https://github.com/PHPMailer/PHPMailer
Затем распаковываем скачанный архивчик и изучаем содержимое SMTP библиотеки PHPMailer:
/docs: // Директория с документацией библиотеки PHPMailer /examples: // Директория с примерами работы библиотеки PHPMailer /extras: // Дополнительные полезности при работе с почтовыми серверами /language: // Директория с переводом Debug /test: // Скрипты тестирование библиотеки PHPMailer class.phpmailer.php // Класс для создания и отправки писем различными методами class.pop3.php // Класс для работы с POP3 class.smtp.php // Класс для работы с SMTP PHPMailerAutoload.php // Файл автоматической подгрузки классов PHPMailer
Все остальное не несет функциональной нагрузки и предоставляется в качестве информационного дополнения к библиотеке PHPMailer.
Ура! Теперь мы знаем что мы имеем при распаковке библиотеке. Дело осталось за малым — разобраться как с этим делом работать!
Многие любят создавать дополнительно файл конфигурации для SMTP клиента PHPMailer и в дальнейшем использовать его. Я тоже приверженец этой традиции и предлагаю на рассмотрение пример такого файла.
$__smtp = array( "host" => 'smtp.host.com', // SMTP сервер "debug" => 2, // Уровень логирования "auth" => true, // Авторизация на сервере SMTP. Если ее нет - false "port" => '25', // Порт SMTP сервера "username" => 'mail@host.com', // Логин запрашиваемый при авторизации на SMTP сервере "password" => '123', // Пароль "addreply" => 'reply@host.com', // Почта для ответа "secure" => 'ssl', // Тип шифрования. Например ssl или tls "mail_title" => 'Заголовок вашего письма!', // Заголовок письма "mail_name" => 'Имя отправителя' // Имя отправителя );
Заливаем все это богатство на наш хостинг и готовимся к первой инициализации и пробной отправке первого письма при помощи SMTP клиента PHPMailer.
Подключаем и инициализируем класс PHPMailer
Для подключения класса PHPMailer необходимо подключить файлы PHPMailerAutoload.php и config.php:
require_once('/путь/до/файла/config.php'); //Файл конфигурации для вашего smtp сервера require_once('/путь/до/файла/
PHPMailerAutoload.php'); //Файл автоматической подгрузки классов PHPMailer
Далее происходит процесс конфигурации SMTP клиента PHPMailer и отправка письма. Пример конфигурации вы можете посмотреть в директории с примерами /examples или воспользоваться нашим примером конфигурации и отправки письма при помощи класса PHPMailer.
Пример конфигурации SMTP клиента PHPMailer:
Данный пример демонстрирует работу библиотеки PHPMailer в качестве SMTP клиента.
require_once('/путь/до/файла/config.php'); //Файл конфигурации для вашего smtp сервера require_once('/путь/до/файла/PHPMailerAutoload.php'); //Файл автоматической подгрузки классов PHPMailer try< $mail = new PHPMailer(true); // Создаем экземпляр класса PHPMailer $mail->IsSMTP(); // Указываем режим работы с SMTP сервером $mail->Host = $__smtp['host']; // Host SMTP сервера: ip или доменное имя $mail->SMTPDebug = $__smtp['debug']; // Уровень журнализации работы SMTP клиента PHPMailer $mail->SMTPAuth = $__smtp['auth']; // Наличие авторизации на SMTP сервере $mail->Port = $__smtp['port']; // Порт SMTP сервера $mail->SMTPSecure = $__smtp['secure']; // Тип шифрования. Например ssl или tls
$mail->CharSet="UTF-8"; // Кодировка обмена сообщениями с SMTP сервером $mail->Username = $__smtp['username']; // Имя пользователя на SMTP сервере $mail->Password = $__smtp['password']; // Пароль от учетной записи на SMTP сервере $mail->AddAddress('whoto@example.com', 'John Doe'); // Адресат почтового сообщения $mail->AddReplyTo($__smtp['addreply'], 'First Last'); // Альтернативный адрес для ответа $mail->SetFrom($__smtp['username'], $__smtp['mail_title']); // Адресант почтового сообщения $mail->Subject = htmlspecialchars($__smtp['mail_title']); // Тема письма $mail->MsgHTML('Текст сообщения!'); // Текст сообщения $mail->Send(); return 1; > catch (phpmailerException $e) < return $e->errorMessage(); >
Поздравляю! Теперь вы имеете четкое представление о возможностях SMTP библиотеки PHPMailer и готовы к реализации любых почтовых рассылок при помощи языка программирования PHP!
Выводы
Мы рекомендуем библиотеку PHPMailer в качестве простого и надежного класса для работы с SMTP серверами. Данная библиотека позволит быстро организовать рассылку практически любой сложности, провести гибкую отладку работы скриптов.
Мы неоднократно использовали и продолжаем использовать данную библиотеку в своих проектах!
Лучший способ сказать автору «СПАСИБО» рассказать друзьям или поделиться ссылкой!
Другие статьи:
В этой статье Мы покажем Вам, как сделать так, чтобы шапка сайта выезжала при прокрутке страницы вверх, но при этом скрывалась при прокрутке страницы вниз, чтобы не загораживать нам просмотр самой страницы.
Всплывающая фиксированная навигация для сайта jQuery, CSS — инструкция, примеры
DateTimePicker – удобный и легкий в использовании плагин для быстрой подстановки даты и времени в поля ввода.
Плагин DateTimePicker для сайта — инструкция, настройка, инициализация
В этой статье будет рассмотрено решение этой задачи с использованием плагина Masked Input, который отличается простотой и удобством в использовании.
Плагин маски ввода для input — jquery maskedinput — инструкция, настройка, инициализация
Метод, который мы рассмотрим ниже, позволяет размещать информацию на страницах любого пользователя или группы,к которому имеет доступ авторизованный пользователь.
Публикация на стене Вконтакте средствами API — кросспостинг
С помощью PHPExcel можно производить чтение и запись информации в файлы, форматировать их содержимое,выполнять операции с формулами, стилями и т.д.
Чтение excel на PHP — основные методы класса PHPExcel
Текстовый редактор TinyMCE в визуальном режиме при стандартной конфигурации обрезает некоторый теги и свойства.
TinyMCE вырезает теги — исключения для тегов TinyMCE
Научимся вставлять теги в выделенный фрагмент текста, вставлять теги на место селектора в тексте и получать средствами JS HTML код отредактированного текста и текст без HTML сущностей.
Cвойства и методы TinyMCE — вставка тегов, вывод значений
Как вы уже поняли, редактор является платформенным Javascript редактором HTML кода, т.е. WYSIWYG редактором для сайтов и веб приложений. Разработчиком этого полезного продукта является компания Moxiecode Systems AB.
Установка и настройка TinyMCE — инициализация и параметры
В статье мы: познакомимся с каруселью; научимся интегрировать ее на свой сайт; познакомимся с основными параметрами инициализации;рассмотрим самые популярные свойства и методы классов jCarousel