RBAND

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?“

Emails.jpg

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:                  // Direktorijum sa dokumentacijom biblioteke PHPMailer
/examples:              // Direktorijum sa primerima rada biblioteke PHPMailer
/extras:                // Dodatne korisne stvari za rad sa poštanskim serverima
/language:              // Direktorijum sa prevodom za Debug
/test:                  // Skripte za testiranje biblioteke PHPMailer
class.phpmailer.php     // Klasa za kreiranje i slanje mejlova različitim metodama
class.pop3.php          // Klasa za rad sa POP3
class.smtp.php          // Klasa za rad sa SMTP
PHPMailerAutoload.php   // Fajl za automatsko učitavanje klasa 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 server
    "debug" => 2, // Nivo logovanja
    "auth" => true, // Autorizacija na SMTP serveru. Ako nema - false
    "port" => '25', // SMTP server port
    "username" => 'mail@host.com', // Korisničko ime traženo prilikom autorizacije na SMTP serveru
    "password" => '123', // Lozinka
    "addreply" => 'reply@host.com', // E-mail za odgovor
    "secure" => 'ssl', // Tip enkripcije. Na primer ssl ili tls
    "mail_title" => 'Naslov vašeg pisma!', // Naslov pisma
    "mail_name" => 'Ime pošiljaoca' // Ime pošiljaoca
);

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('/put/do/fajla/config.php'); //Fajl konfiguracije za vaš smtp server
require_once('/put/do/fajla/PHPMailerAutoload.php'); //Fajl za automatsko učitavanje PHPMailer klasa

 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('/put/do/fajla/config.php'); //Fajl konfiguracije za vaš smtp server
require_once('/put/do/fajla/PHPMailerAutoload.php'); //Fajl za automatsko učitavanje PHPMailer klasa

try{
    $mail = new PHPMailer(true); // Kreiramo instancu klase PHPMailer

    $mail->IsSMTP(); // Postavljamo režim rada sa SMTP serverom
    $mail->Host       = $__smtp['host'];  // Host SMTP servera: ip ili domen
    $mail->SMTPDebug  = $__smtp['debug'];  // Nivo logovanja rada SMTP klijenta PHPMailer
    $mail->SMTPAuth   = $__smtp['auth'];  // Da li postoji autentifikacija na SMTP serveru
    $mail->Port       = $__smtp['port'];  // Port SMTP servera
    $mail->SMTPSecure = $__smtp['secure'];  // Tip enkripcije. Na primer ssl ili tls 
    $mail->CharSet="UTF-8"; // Kodiranje komunikacije sa SMTP serverom 
    $mail->Username = $__smtp['username']; // Korisničko ime na SMTP serveru 
    $mail->Password = $__smtp['password']; // Lozinka za nalog na SMTP serveru 
    $mail->AddAddress('whoto@example.com', 'John Doe'); // Primaoc email poruke
    $mail->AddReplyTo($__smtp['addreply'], 'First Last'); // Alternativna adresa za odgovor
    $mail->SetFrom($__smtp['username'], $__smtp['mail_title']); // Pošiljalac email poruke
    $mail->Subject = htmlspecialchars($__smtp['mail_title']); // Tema emaila
    $mail->MsgHTML('Tekst poruke!'); // Tekst poruke
    $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!

Andrey
Andrey Perederiy

lead developer

Kaži autoru "hvala", podeli sa prijateljima