Send e-post i PHP ved hjelp av Swift Mailer

I denne artikkelen skal vi utforske Swift Mailer-biblioteket, som lar deg sende e-poster fra PHP-applikasjoner. Fra og med installasjon og konfigurasjon, går vi gjennom et eksempel på ekte verden som demonstrerer ulike aspekter ved å sende e-post ved hjelp av Swift Mailer-biblioteket.

Hva er Swift Mailer?

Når det gjelder å sende e-post i PHP-applikasjoner, har du en mengde alternativer å velge mellom. Du kan til og med ende opp med å lage ditt eget wrapper for å sette opp e-postfunksjoner raskt. Men du har alltid lykke til hvis du bruker et godt vedlikeholdt og funksjonsrikt bibliotek.

Swift Mailer er et populært bibliotek for å sende e-post fra PHP-applikasjoner, og det er allment akseptert av PHP-fellesskapet. Det er et funksjonsrikt bibliotek i den forstand at det dekker nesten alle aspekter ved å sende e-post, fra å sette opp forskjellige transporter for å tilpasse meldingen som blir sendt.

Faktisk er det en ganske enkel prosess for å sende e-post med Swift Mailer-biblioteket.

  1. Initialiser objektet Transport (SMTP / Sendmail).
  2. Initialiser Mailer-objektet med den Transporten.
  3. Initialiser meldingsobjektet.
  4. Formater og send meldingen.

I neste avsnitt går vi gjennom et eksempel på ekte verden for å demonstrere hver av de nevnte trinnene.

Installasjon og konfigurering

I denne delen går vi gjennom installasjon og konfigurasjon av Swift Mailer-biblioteket. Installasjonen er ganske enkel, da den allerede er tilgjengelig som komposerpakke. Før vi går videre, må du kontrollere at du har installert Komponisten fordi vi trenger det for å installere Swift Mailer-biblioteket.

Når du har installert Komponist, fortsett og ta tak i Swift Mailer-biblioteket ved å bruke følgende kommando.

$ komponent krever "swiftmailer / swiftmailer: ^ 6,0"

Med dette bør Swift Mailer-biblioteket installeres, sammen med de nødvendige avhengighetene i selger katalogen. Og innholdet i den nyopprettede composer.json skal se slik ut:

"krever": "swiftmailer / swiftmailer": "^ 6.0"

Så det er installasjonsdelen, men hvordan skal du bruke den? Faktisk er det bare et spørsmål om å inkludere autoload.php fil opprettet av Komponist i din søknad, som vist i følgende utdrag.

Slik sender du e-post

I det forrige avsnittet undersøkte vi hvordan du installerer Swift Mailer-biblioteket ved hjelp av Composer. I denne delen begynner vi å implementere et ekteeksempel.

Gå videre og opprett email.php fil med følgende innhold.

sett Brukernavn ('xxxxxxxx') -> setPassword ('xxxxxxxx'); // Opprett Mailer ved hjelp av din opprettede Transport $ mailer = ny Swift_Mailer ($ transport); // Opprett en melding $ message = new Swift_Message (); // Sett et "emne" $ melding-> setSubject ('Demo melding ved hjelp av SwiftMailer biblioteket.'); // Sett "Fra adresse" $ melding-> setFrom (['[email protected]' => 'avsendernavn']); // Sett "Til adresse" [Bruk setTo-metode for flere mottakere, argumentet skal være array] $ message-> addTo ([email protected] ',' mottakernavn '); // Legg til "CC" -adresse [Bruk setCc-metode for flere mottakere, argumentet skal være array] $ message-> addCc ([email protected] ',' mottakernavn '); // Legg til "BCC" -adresse [Bruk setBcc-metode for flere mottakere, argumentet skal være array] $ message-> addBcc ([email protected] ',' mottakernavn '); // Legg til en "Vedlegg" (Den dynamiske data kan også festes) $ attachment = Swift_Attachment :: fromPath ('example.xls'); $ Festemidler-> setFilename ( 'Rapport.xls'); $ Melding-> feste ($ vedlegg); // Legg til inline "Image" $ inline_attachment = Swift_Image :: fromPath ('nature.jpg'); $ cid = $ message-> embed ($ inline_attachment); // Angi vanlig tekst "Body" $ message-> setBody ("Dette er teksttekstteksten i meldingen. \ NThanks, \ nAdmin"); // Sett en "Body" $ message-> addPart ('Dette er HTML-versjonen av meldingen.
Eksempel på inline bilde:

Takk,
Admin ',' text / html '); // Send meldingen $ result = $ mailer-> send ($ message); fangst (Unntak $ e) echo $ e-> getMessage ();

La oss gå gjennom hvordan denne koden fungerer.

Initialiser Swift Mailer

Swift Mailer-biblioteket støtter forskjellige transporter som SMTP og Sendmail mens du sender en e-post. Så det første du må gjøre er å initialisere transportere gjenstand.

I eksemplet ovenfor har jeg brukt SMTP-transporten til å sende e-post.

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

Selvfølgelig, hvis du vil bruke Sendmail-protokollen, må du initialisere den tilsvarende Swift_SendmailTransport gjenstand.

// Opprett SendMail Transport $ transport = ny Swift_SendmailTransport ('/ usr / sbin / sendmail -bs');

Når transporten er opprettet, må vi initialisere et mailerobjekt og overføre transporten vi allerede har opprettet.

// Opprett Mailer ved hjelp av din opprettede Transport $ mailer = ny Swift_Mailer ($ transport);

Lag en melding

Etter å ha opprettet transport- og mailerobjektene, er det eneste gjenværende å ordne Swift_Message objekt og dekorere det med de nødvendige egenskapene.

// Opprett en melding $ message = new Swift_Message ();

Nå skal vi bruke $ melding Motta å forberede innholdet i meldingen vår. Til å begynne med, setSubject Metoden lar deg sette emnet til e-posten.

// Sett et "emne" $ melding-> setSubject ('Demo melding ved hjelp av SwiftMailer biblioteket.');

De setFrom Metoden brukes til å angi e-postadressen "Fra".

// Sett "Fra adresse" $ melding-> setFrom (['[email protected]' => 'Avsendernavn']);

Fortsett, la oss angi e-postadressen "Til". Faktisk er det et par variasjoner for å sette mottakerne av e-posten. Hvis du vil angi en enkelt mottaker, kan du bruke legge til metode, og satt til metode, derimot, brukes til å sette flere mottakere.

// Sett "Til adresse" [Bruk setTo-metode for flere mottakere, argumentet skal være array] $ message-> addTo ([email protected] ',' mottakernavn ');

De addCc og addBcc Metoder brukes til å angi henholdsvis CC og BCC adressene til e-posten.

// Legg til "CC" -adresse [Bruk setCc-metode for flere mottakere, argumentet skal være array] $ message-> addCc ([email protected] ',' mottakernavn '); // Legg til "BCC" -adresse [Bruk setBcc-metode for flere mottakere, argumentet skal være array] $ message-> addBcc ([email protected] ',' mottakernavn ');

Vedlegg av filer

Neste, la oss se på hvordan du kan legge ved en fil til en e-post. 

Du må først instantiere Swift_Attachment objekt med et gyldig filnavn. Etter at du har opprettet vedleggsobjektet, kan du legge det til e-postadressen med feste metode. Du kan også bruke setFilename metode hvis du vil endre filnavnet som vil vises i meldingsvedlegget.

// Legg til en "Vedlegg" (Den dynamiske data kan også festes) $ attachment = Swift_Attachment :: fromPath ('example.xls'); $ Festemidler-> setFilename ( 'Rapport.xls'); $ Melding-> feste ($ vedlegg);

Sammen med vanlige filvedlegg, vil du noen ganger legge inn bilder i meldingen. Du kan gjøre det ved å bruke embed metode, som vist i følgende utdrag. De embed Metoden returnerer den unike IDen til den innebygde objekten, som du senere kan bruke i meldingen mens du refererer til bildet via src eiendom.

// Legg til inline "Image" $ inline_attachment = Swift_Image :: fromPath ('nature.jpg'); $ cid = $ message-> embed ($ inline_attachment);

Meldingstorget

Deretter la vi sette e-postkroppen ved hjelp av setBody metode.

// Angi vanlig tekst "Body" $ message-> setBody ("Dette er teksttekstteksten i meldingen. \ NThanks, \ nAdmin");

Hvis du vil angi HTML-versjonen av meldingen, kan du bruke addPart metode, som vist i følgende utdrag. Som du ser, bruker vi $ cid for å referere til bildet vi innebygde tidligere.

// Sett en "Body" $ message-> addPart ('Dette er HTML-versjonen av meldingen.
Eksempel på inline bilde:

Takk,
Admin ',' text / html ');

Send meldingen!

Til slutt bruker vi sende Metode for Mailer-objektet for å sende e-posten.

// Send meldingen $ result = $ mailer-> send ($ message);

Prøv å kjøre skriptet, og du bør motta en e-post! Gi meg beskjed i kommentarseksjonen hvis du møter eventuelle problemer.

Konklusjon

I dag så vi på et av de mest populære PHP-bibliotekene for å sende e-post: Swift Mailer. Med dette biblioteket kan du enkelt sende e-post fra PHP-skriptene dine.

Du er velkommen til å legge inn dine tanker og spørsmål ved hjelp av skjemaet nedenfor.