Î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.
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.
În secțiunea următoare, vom trece printr-un exemplu din lumea reală pentru a demonstra fiecare dintre pașii menționați anterior.
Î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.
Î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.
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);
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 ");
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);
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 ");
Î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.
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.