SMTP PHPMAILER instrukcije. Svojstva i metode klase

Svaki backend PHP programer suočen je sa zadatkom automatizacije slanja pošte na web stranicama, a mnogi koji su se prvi put susreli s tim zadatkom suočili su se s ključnim pitanjem: „Da li da pišem ili ne pišem smtp klijenta od nule?“

Svaki backend PHP programer suočen je sa zadatkom automatizacije slanja pošte na web stranicama, a mnogi koji su se prvi put susreli s tim zadatkom suočili su se s ključnim pitanjem: „Da li da pišem ili ne pišem smtp klijenta od nule?“ Ako odlučite da samostalno implementirate funkcionalnost smtp klijenta u PHP-u, ili bilo kom drugom sličnom jeziku, onda ćete se suočiti sa veoma rutinskim i dosadnim radom, jer Glavni mehanizam za rad sa smtp serverima je razmjena tekstualnih poruka i ništa više. Ali, srećom, to nije potrebno! Sve što vam treba već je napisano u junaku današnjeg članka - klasi PHPMailer.

PHPMailer klasa nam daje mogućnost da lako i brzo napišemo skripte za slanje obavještenja putem e-pošte uz fleksibilan sistem za otklanjanje grešaka u ovoj skripti. Skripta je napisana u PHP programskom jeziku i podržava standarde kriptografske enkripcije prilikom razmjene poruka sa TLS\SSL serverom.

Da biste koristili PHPMailer na svom serveru, potrebna vam je mogućnost povezivanja na eksterne SMTP servere pomoću PHP-a.

Karakteristike SMTP klijenta PHPMailer.

  • Slanje e-pošte sa više primalaca;
  • Podržava 8-bitni, base64, binarni način rada i format za štampanje;
  • SMTP autorizacija na strani servera;
  • Word wrap;
  • Šaljite poruke kao HTML;
  • Biblioteka je testirana na mnogim SMTP serverima: Sendmail, qmail, Postfix, Imail, Exchange, Mercury, Courier;
  • Radi na bilo kojoj win32 i *nix platformi;
  • Fleksibilnost rada na otklanjanju grešaka - implementiran je sistem za prikaz detaljnog dnevnika komunikacije sa SMTP serverom;
  • Ručno definirana zaglavlja e-pošte;
  • Kombinovanje više poruka i priloga;
  • Ugrađena podrška za slike.
  • Slanje pisama na različite načine: putem smtp servera, sendmail i Qmail uslužnog programa, mail() funkcije

 Instalacija i početna priprema PHPMailer SMTP klijenta za rad

Prije svega, morate preuzeti najnoviju verziju SMTP biblioteke: https://github.com/PHPMailer/PHPMailer

Zatim raspakujte preuzetu arhivu i proučite sadržaj PHPMailer SMTP biblioteke: 

/docs:                  // Директория с документацией библиотеки PHPMailer
/examples:              // Директория с примерами работы библиотеки PHPMailer
/extras:                // Дополнительные полезности при работе с почтовыми серверами
/language:              // Директория с переводом Debug
/test:                  // Скрипты тестирование библиотеки PHPMailer
class.phpmailer.php     // Класс для создания и отправки писем различными методами
class.pop3.php          // Класс для работы с POP3
class.smtp.php          // Класс для работы с SMTP
PHPMailerAutoload.php   // Файл автоматической подгрузки классов PHPMailer

Sve ostalo nema funkcionalno opterećenje i pruža se kao informativni dodatak PHPMailer biblioteci.

Ura! Sada znamo šta imamo kada raspakujemo biblioteku. Jedino što treba da uradite je da smislite kako da radite sa ovom materijom!

Mnogi ljudi vole da kreiraju dodatnu konfiguracionu datoteku za SMTP klijent PHPMailera i koriste je u budućnosti. Ja sam također sljedbenik ove tradicije i nudim primjer takvog fajla na razmatranje.

config.php: 

$__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" => 'Имя отправителя' // Имя отправителя
); 

 Svo ovo bogatstvo postavljamo na naš hosting i pripremamo se za prvu inicijalizaciju i probno slanje prvog pisma koristeći SMTP klijent PHPMailer.

Povežite i inicijalizirajte klasu PHPMailer

Da povežete PHPMailer klasu, morate uključiti PHPMailerAutoload.php i config.php datoteke : 

require_once('/путь/до/файла/config.php'); //Файл конфигурации для вашего smtp сервера
require_once('/путь/до/файла/PHPMailerAutoload.php'); //Файл автоматической подгрузки классов PHPMailer

 Zatim slijedi proces konfiguracije PHPMailer SMTP klijenta i slanja pisma. Možete pogledati primjer konfiguracije u direktoriju /examples ili koristiti naš primjer konfiguracije i slanja pisma koristeći klasu PHPMailer.

Primjer konfiguracije PHPMailer SMTP klijenta:

Ovaj primjer pokazuje rad PHPMailer biblioteke kao SMTP klijenta.

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(); }

Čestitamo! Sada imate jasno razumijevanje mogućnosti SMTP biblioteke PHPMailer i spremni ste za implementaciju bilo koje mailing kampanje koristeći PHP programski jezik!

zaključci

Preporučujemo PHPMailer biblioteku kao jednostavnu i pouzdanu klasu za rad sa SMTP serverima. Ova biblioteka će vam omogućiti da brzo organizirate slanje pošte gotovo bilo koje složenosti i izvršite fleksibilno otklanjanje grešaka u skriptama.

Više puta smo koristili i koristimo ovu biblioteku u našim projektima!

Hvala svima na pažnji!