Trimiteți e-mailuri în PHP folosind Swift Mailer

În acest articol, vom explora biblioteca Swift Mailer, care vă permite să trimiteți e-mailuri din aplicații PHP. Începând cu instalarea și configurarea, vom trece printr-un exemplu din lumea reală care demonstrează diferite aspecte legate de trimiterea de e-mailuri utilizând biblioteca Swift Mailer.

Ce este Swift Mailer?

Când vine vorba de a trimite e-mailuri în aplicații PHP, aveți o mulțime de opțiuni de a alege de la. S-ar putea chiar să vă creați propriul ambalaj pentru a configura rapid funcțiile de e-mail. Cu toate acestea, aveți întotdeauna noroc dacă utilizați o bibliotecă bine întreținută și bogată în funcții.

Swift Mailer este o bibliotecă populară pentru trimiterea de e-mailuri de la aplicații PHP și este larg acceptată de comunitatea PHP. Este o bibliotecă bogată în caracteristici, în sensul că acoperă aproape fiecare aspect al trimiterii de e-mailuri, de la configurarea unor transporturi diferite la personalizarea mesajului trimis.

De fapt, este un proces destul de simplu de a trimite e-mailuri folosind biblioteca Swift Mailer.

  1. Inițializați obiectul Transport (SMTP / Sendmail).
  2. Inițializați obiectul Mailer cu acel transport.
  3. Inițializați obiectul Mesaj.
  4. Formați și trimiteți mesajul.

În secțiunea următoare, vom trece printr-un exemplu din lumea reală pentru a demonstra fiecare dintre pașii menționați anterior.

Instalare și configurare

În această secțiune, vom trece prin instalarea și configurarea bibliotecii Swift Mailer. Instalarea este destul de simplă, deoarece este deja disponibilă ca pachet Compozitor. Înainte de a începe, asigurați-vă că ați instalat Compozitor, pentru că vom avea nevoie de instalarea bibliotecii Swift Mailer.

Odată ce ați instalat Compozitor, continuați și luați biblioteca Swift Mailer utilizând următoarea comandă.

$ compozitor necesită "swiftmailer / swiftmailer: ^ 6.0"

Cu aceasta, biblioteca Swift Mailer ar trebui să fie instalată, împreună cu dependențele necesare în furnizor director. Și conținutul nou creat composer.json ar trebui să arate astfel:

"necesită": "swiftmailer / swiftmailer": "^ 6.0"

Deci asta este partea de instalare, dar cum ar trebui să o folosești? De fapt, este doar o chestiune de a include autoload.php fișier creat de Compozitor în aplicația dvs., așa cum se arată în fragmentul următor.

Cum să trimiteți e-mailuri

În secțiunea anterioară, am explorat modul de instalare a bibliotecii Swift Mailer folosind Composer. În această secțiune, vom începe să implementăm un exemplu din lumea reală.

Continuați și creați email.php fișier cu următorul conținut.

setUsername ('xxxxxxxx') -> setPassword ('xxxxxxxx'); // Creați Mailer utilizând Transportul creat $ mailer = Swift_Mailer nou ($ transport); // Creați un mesaj $ message = new Swift_Message (); // Setați un "subiect" $ message-> setSubject ('Mesaj demo folosind biblioteca SwiftMailer.'); // Setați adresa "From address" $ message-> setFrom (['[email protected]' => 'numele expeditorului']]; // Setați "Pentru a adresa" [Utilizați metoda setTo pentru mai mulți destinatari, argumentul ar trebui să fie matrice] $ message-> addTo ([email protected] "," numele destinatarului "); // Adăugați adresa "CC" [Utilizați metoda setCc pentru mai mulți destinatari, argumentul ar trebui să fie array] $ message-> addCc ([email protected] "," numele destinatarului "); // Adăugați adresa "BCC" [Utilizați metoda setBcc pentru mai mulți destinatari, argumentul ar trebui să fie matricea] $ message-> addBcc ([email protected] "," numele destinatarului "); // Adăugați un "atașament" (De asemenea, pot fi atașate datele dinamice) $ attachment = Swift_Attachment :: fromPath ('example.xls'); $ Attachment-> setFilename ( 'report.xls'); $ Message> atașați (atașament $); // Adăugați inline "Imagine" $ inline_attachment = Swift_Image :: dinPath ('nature.jpg'); $ cid = $ mesaj-> încorporați ($ inline_attachment); // Setați textul simplu "Corp" $ message-> setBody ("Acesta este textul textului simplu al mesajului. \ NThanks, \ nAdmin"); // Setați un "Corp" $ message-> addPart ('Aceasta este versiunea HTML a mesajului.
Exemplu de imagine inline:

Mulțumiri,
Admin "," text / html "); // Trimiteți mesajul $ result = $ mailer-> send ($ message); captură (Excepție $ e) echo $ e-> getMessage ();

Hai să vedem cum funcționează acest cod.

Inițializați Swift Mailer

Biblioteca Swift Mailer acceptă transporturi diferite precum SMTP și Sendmail în timp ce trimite un e-mail. Deci, primul lucru pe care trebuie să-l faceți este să inițializați transport obiect.

În exemplul de mai sus, am folosit transportul SMTP pentru a trimite e-mailuri.

$ transport = (noul Swift_SmtpTransport ('smtp.hostname', 25)) -> setUsername ('xxxxxxxx') -> setPassword ('xxxxxxxx');

Desigur, dacă doriți să utilizați protocolul Sendmail, va trebui să inițializați codul corespunzător Swift_SendmailTransport obiect.

// Crearea transportului SendMail $ transport = noul Swift_SendmailTransport ('/ usr / sbin / sendmail -bs');

Odată ce transportul este creat, trebuie să inițializăm un obiect mailer și să trecem deja transportul pe care l-am creat.

// Creați Mailer utilizând Transportul creat $ mailer = Swift_Mailer nou ($ transport);

Creați un mesaj

După crearea obiectelor de transport și mailer, singurul lucru rămas este să instanțiați Swift_Message obiect și decorați-l cu atributele necesare.

// Creați un mesaj $ message = new Swift_Message ();

Acum o vom folosi $ mesaj obiect pentru a pregăti conținutul mesajului nostru. Pentru început, setSubject vă permite să setați subiectul mesajului de e-mail.

// Setați un "subiect" $ message-> setSubject ('Mesaj demo folosind biblioteca SwiftMailer.');

setFrom metoda este utilizată pentru a seta adresa "De la" a e-mailului.

// Setați "De la adresa" $ message-> setFrom (['[email protected]' => 'Nume expeditor']);

Înainte de a începe, trebuie să setați adresa "Către" a e-mailului. De fapt, există câteva variante pentru setarea destinatarilor e-mailului. Dacă doriți să setați un singur destinatar, puteți utiliza funcția adauga la metoda, și setat la metoda, pe de altă parte, este utilizată pentru a seta mai mulți destinatari.

// Setați "Pentru a adresa" [Utilizați metoda setTo pentru mai mulți destinatari, argumentul ar trebui să fie array] $ message-> addTo ([email protected] "," numele receptorului ");

addCc și addBcc metodele sunt folosite pentru a seta adresele CC și BCC ale e-mail-ului respectiv.

// Adăugați adresa "CC" [Utilizați metoda setCc pentru mai mulți destinatari, argumentul ar trebui să fie array] $ message-> addCc ([email protected] "," numele destinatarului "); // Adăugați adresa "BCC" [Utilizați metoda setBcc pentru mai mulți destinatari, argumentul ar trebui să fie matricea] $ message-> addBcc ([email protected] "," numele destinatarului ");

Atașarea fișierelor

Apoi, să aruncăm o privire asupra modului în care puteți atașa un fișier unui e-mail. 

Mai întâi trebuie să instanțiați Swift_Attachment obiect cu un nume de fișier valid. După ce ați creat obiectul atașament, îl puteți adăuga la e-mail cu atașa metodă. De asemenea, puteți utiliza funcția setFilename dacă doriți să modificați numele fișierului care va apărea în atașamentul mesajului.

// Adăugați un "atașament" (De asemenea, pot fi atașate datele dinamice) $ attachment = Swift_Attachment :: fromPath ('example.xls'); $ Attachment-> setFilename ( 'report.xls'); $ Message> atașați (atașament $);

Împreună cu atașamentele obișnuite ale fișierelor, uneori doriți să încorporați imagini în textul mesajului. Puteți face acest lucru folosind încorporare , așa cum se arată în fragmentul următor. încorporare metoda returnează ID-ul unic al obiectului încorporat, pe care îl puteți utiliza mai târziu în mesaj, în timp ce faceți referire la imagine prin intermediul src proprietate.

// Adăugați inline "Imagine" $ inline_attachment = Swift_Image :: dinPath ('nature.jpg'); $ cid = $ mesaj-> încorporați ($ inline_attachment);

Corpul mesajelor

Apoi, setați corpul de e-mail utilizând setBody metodă.

// Setați textul simplu "Corp" $ message-> setBody ("Acesta este textul textului simplu al mesajului. \ NThanks, \ nAdmin");

Dacă doriți să setați versiunea HTML a mesajului, puteți utiliza funcția addPart , așa cum se arată în fragmentul următor. După cum vedeți, folosim $ cid pentru a face referire la imaginea pe care am încorporat-o mai devreme.

// Setați un "Corp" $ message-> addPart ('Aceasta este versiunea HTML a mesajului.
Exemplu de imagine inline:

Mulțumiri,
Admin "," text / html ");

Trimiteți mesajul!

În cele din urmă, vom folosi trimite metoda obiectului Mailer pentru a trimite e-mailul.

// Trimiteți mesajul $ result = $ mailer-> send ($ message);

Încercați să rulați scriptul și ar trebui să primiți un e-mail! Dați-mi voie să știu în secțiunea de comentarii dacă vă confruntați cu probleme.

Concluzie

Astăzi, ne-am uitat la una dintre cele mai populare biblioteci PHP pentru trimiterea de e-mailuri: Swift Mailer. Cu această bibliotecă, puteți trimite cu ușurință e-mailuri din script-urile PHP.

Simțiți-vă liber să postați gândurile și interogările utilizând formularul de mai jos.

Cod