I den här artikeln kommer vi att utforska Swift Mailer-biblioteket, som låter dig skicka e-post från PHP-applikationer. Från och med installationen och konfigurationen går vi igenom ett verkligt exempel som visar olika aspekter av att skicka e-postmeddelanden med hjälp av Swift Mailer-biblioteket.
När det gäller att skicka e-postmeddelanden i PHP-applikationer, har du en mängd alternativ att välja mellan. Du kan till och med sluta skapa ditt eget wrapper för att snabbt konfigurera e-postfunktioner. Men du har alltid tur om du använder ett väl underhållen och funktionsrik bibliotek.
Swift Mailer är ett populärt bibliotek för att skicka e-post från PHP-applikationer, och det är allmänt accepterat av PHP-community. Det är ett funktionsrikt bibliotek i den meningen att det täcker nästan alla aspekter av att skicka e-postmeddelanden, från att konfigurera olika transporter för att anpassa meddelandet som skickas.
Det är faktiskt en ganska enkel process att skicka e-postmeddelanden med hjälp av Swift Mailer-biblioteket.
I nästa avsnitt går vi igenom ett verkligt exempel för att demonstrera var och en av de ovan nämnda stegen.
I det här avsnittet går vi igenom installationen och konfigurationen av Swift Mailer-biblioteket. Installationen är ganska enkel, eftersom den redan är tillgänglig som ett kompositörspaket. Innan vi fortsätter, se till att du har installerat Kompositör eftersom vi behöver det för att installera Swift Mailer-biblioteket.
När du har installerat Kompositör, fortsätt och ta tag i Swift Mailer-biblioteket med följande kommando.
$ komponent kräver "swiftmailer / swiftmailer: ^ 6,0"
Med detta bör Swift Mailer-biblioteket installeras, tillsammans med nödvändiga beroenden i Säljare katalogen. Och innehållet i den nyskapade composer.json ska se så här ut:
"kräver": "swiftmailer / swiftmailer": "^ 6.0"
Så det är installationsdelen, men hur ska du använda den? Faktum är att det bara handlar om att inkludera autoload.php fil skapad av kompositören i din ansökan, som visas i följande kod.
I det föregående avsnittet undersökte vi hur du installerar Swift Mailer-biblioteket med Composer. I det här avsnittet börjar vi implementera ett verkligt exempel.
Gå vidare och skapa email.php fil med följande innehåll.
setUsername ('xxxxxxxx') -> setPassword ('xxxxxxxx'); // Skapa Mailer med din skapade Transport $ mailer = ny Swift_Mailer ($ transport); // Skapa ett meddelande $ message = new Swift_Message (); // Ange ett "ämne" $ meddelande-> setSubject ('Demo-meddelande med SwiftMailer-biblioteket.'); // Ange "Från adress" $ message-> setFrom (['avsä[email protected]' => 'avsändarnamn']); // Ange "Att adressera" [Använd setTo-metod för flera mottagare, argumentet ska vara array] $ message-> addTo ([email protected] "," mottagarnamn "); // Lägg till "CC" -adress [Använd setCc-metod för flera mottagare, argumentet ska vara array] $ message-> addCc ([email protected] "," mottagarnamn "); // Lägg till "BCC" -adress [Använd setBcc-metoden för flera mottagare, argumentet ska vara array] $ message-> addBcc ([email protected] "," mottagarens namn "); // Lägg till en "Attachment" (Den dynamiska data kan också bifogas) $ attachment = Swift_Attachment :: fromPath ('example.xls'); $ Attachment-> setFilename (Report.xls '); $ Meddelande-> bifoga ($ bilaga); // Lägg till inline "Bild" $ inline_attachment = Swift_Image :: fromPath ('nature.jpg'); $ cid = $ message-> bädda in ($ inline_attachment); // Ange vanlig text "Body" $ message-> setBody ("Detta är meddelandets vanliga textkropp. \ NThanks, \ nAdmin"); // Ange ett "Body" $ message-> addPart ('Det här är HTML-versionen av meddelandet.
Exempel på inline-bild:
Tack,
Admin ',' text / html '); // Skicka meddelandet $ result = $ mailer-> send ($ message); fångst (Undantag $ e) echo $ e-> getMessage ();
Låt oss gå igenom hur denna kod fungerar.
Swift Mailer-biblioteket stöder olika transporter som SMTP och Sendmail när du skickar ett mail. Så det första du behöver göra är att initialisera transport
objekt.
I ovanstående exempel har jag använt SMTP-transporten för att skicka e-postmeddelanden.
$ transport = (ny Swift_SmtpTransport ('smtp.hostname', 25)) -> setUsername ('xxxxxxxx') -> setPassword ('xxxxxxxx');
Självklart, om du vill använda Sendmail-protokollet måste du initiera motsvarande Swift_SendmailTransport
objekt.
// Skapa SendMail Transport $ transport = nya Swift_SendmailTransport ('/ usr / sbin / sendmail -bs');
När transporten är skapad måste vi initiera ett mailerobjekt och skicka den transport som vi redan har skapat.
// Skapa Mailer med din skapade Transport $ mailer = ny Swift_Mailer ($ transport);
Efter att ha skapat transport- och postarobjekten är det enda som återstår att inställa Swift_Message
objekt och dekorera det med de nödvändiga egenskaperna.
// Skapa ett meddelande $ message = new Swift_Message ();
Nu ska vi använda $ message
anstränga sig för att förbereda innehållet i vårt meddelande. Till att börja med, setSubject
Metoden låter dig ställa in ämnet för e-postmeddelandet.
// Ange ett "ämne" $ meddelande-> setSubject ('Demo-meddelande med SwiftMailer-biblioteket.');
De setFrom
Metoden används för att ställa in "Från" -adressen till e-postmeddelandet.
// Ange "Från adress" $ message-> setFrom (['[email protected]' => 'Avsändarens namn']);
Förflyttning framåt, låt oss ange e-postadressen "Till". Faktum är att det finns ett par variationer för att ställa in mottagarna av e-postmeddelandet. Om du vill ställa in en enda mottagare kan du använda Lägg till
metod och satt till
Metoden å andra sidan används för att ställa in flera mottagare.
// Ange "Att adressera" [Använd setTo-metod för flera mottagare, argumentet ska vara array] $ message-> addTo ([email protected] "," mottagarnamn ");
De addCc
och addBcc
Metoder används för att ställa in respektive respektive e-postadressens CC- och BCC-adresser.
// Lägg till "CC" -adress [Använd setCc-metod för flera mottagare, argumentet ska vara array] $ message-> addCc ([email protected] "," mottagarnamn "); // Lägg till "BCC" -adress [Använd setBcc-metoden för flera mottagare, argumentet ska vara array] $ message-> addBcc ([email protected] "," mottagarens namn ");
Låt oss nu se hur du kan bifoga en fil till ett e-postmeddelande.
Du måste först instansera Swift_Attachment
objekt med ett giltigt filnamn När du har skapat bifogningsobjektet kan du lägga till det i e-postmeddelandet med fästa
metod. Du kan också använda setFilename
metod om du vill ändra filnamnet som kommer att visas i meddelandefilerna.
// Lägg till en "Attachment" (Den dynamiska data kan också bifogas) $ attachment = Swift_Attachment :: fromPath ('example.xls'); $ Attachment-> setFilename (Report.xls '); $ Meddelande-> bifoga ($ bilaga);
Tillsammans med vanliga bifogade filer, ibland vill du bädda in bilder i meddelandetexten. Du kan göra det genom att använda bädda in
metod, som visas i följande kod. De bädda in
Metoden returnerar det unika ID-numret för det inbäddade objektet, vilket du senare kan använda i meddelandet medan du refererar till bilden via src
fast egendom.
// Lägg till inline "Bild" $ inline_attachment = Swift_Image :: fromPath ('nature.jpg'); $ cid = $ message-> bädda in ($ inline_attachment);
Låt oss sedan ange e-postkroppen med hjälp av setBody
metod.
// Ange vanlig text "Body" $ message-> setBody ("Detta är meddelandets vanliga textkropp. \ NThanks, \ nAdmin");
Om du vill ange HTML-versionen av meddelandet kan du använda addPart
metod, som visas i följande kod. Som du kan se använder vi $ cid
för att hänvisa till bilden vi tidigare inbäddade.
// Ange ett "Body" $ message-> addPart ('Det här är HTML-versionen av meddelandet.
Exempel på inline-bild:
Tack,
Admin ',' text / html ');
Slutligen använder vi skicka
Metod för Mailer-objektet att skicka e-postmeddelandet.
// Skicka meddelandet $ result = $ mailer-> send ($ message);
Prova att köra skriptet, och du borde få ett mail! Låt mig veta i kommentarsektionen om du möter några problem.
Idag tittade vi på ett av de mest populära PHP-biblioteken för att skicka e-postmeddelanden: Swift Mailer. Med det här biblioteket kan du enkelt skicka e-postmeddelanden från dina PHP-skript.
Skicka gärna dina tankar och frågor genom att använda formuläret nedan.