In questo articolo, esploreremo la libreria Swift Mailer, che ti consente di inviare e-mail da applicazioni PHP. Iniziando con l'installazione e la configurazione, passeremo attraverso un esempio reale che dimostra vari aspetti dell'invio di email utilizzando la libreria Swift Mailer.
Quando si tratta di inviare e-mail in applicazioni PHP, hai una miriade di opzioni tra cui scegliere. Si potrebbe anche finire per creare il proprio wrapper per configurare rapidamente le funzionalità di posta elettronica. Tuttavia, sei sempre fortunato se stai utilizzando una libreria ben mantenuta e ricca di funzionalità.
Swift Mailer è una libreria popolare per l'invio di e-mail da applicazioni PHP ed è ampiamente accettata dalla comunità PHP. È una libreria ricca di funzionalità, nel senso che copre quasi ogni aspetto delle e-mail di invio, dall'impostazione di diversi trasporti alla personalizzazione del messaggio che viene inviato.
In realtà, è un processo abbastanza semplice per inviare e-mail usando la libreria Swift Mailer.
Nella prossima sezione, passeremo attraverso un esempio del mondo reale per dimostrare ciascuno dei passaggi sopra menzionati.
In questa sezione, passeremo attraverso l'installazione e la configurazione della libreria Swift Mailer. L'installazione è abbastanza semplice, poiché è già disponibile come pacchetto di Composer. Prima di procedere, assicurati di aver installato Composer perché ne avremo bisogno per installare la libreria di Swift Mailer.
Una volta installato Composer, vai avanti e prendi la libreria di Swift Mailer usando il seguente comando.
$ compositore richiede "swiftmailer / swiftmailer: ^ 6.0"
Con questo, la libreria Swift Mailer dovrebbe essere installata, insieme con le necessarie dipendenze in venditore directory. E i contenuti del nuovo creato composer.json dovrebbe assomigliare a questo:
"require": "swiftmailer / swiftmailer": "^ 6.0"
Quindi questa è la parte di installazione, ma come si dovrebbe utilizzarla? In realtà, è solo questione di includere il autoload.php file creato da Composer nella tua applicazione, come mostrato nello snippet seguente.
Nella sezione precedente, abbiamo esplorato come installare la libreria Swift Mailer usando Composer. In questa sezione, inizieremo ad implementare un esempio reale.
Vai avanti e crea il email.php file con il seguente contenuto.
setUsername ('xxxxxxxx') -> setPassword ('xxxxxxxx'); // Crea il Mailer usando il tuo Trasporto $ mailer = new Swift_Mailer ($ transport); // Crea un messaggio $ message = new Swift_Message (); // Imposta un messaggio $ "soggetto "-> setSubject (" Demo message using the SwiftMailer library. "); // Imposta il messaggio "Da indirizzo" $-> setFrom (['[email protected]' => 'nome mittente']); // Imposta "To address" [Usa il metodo setTo per più destinatari, l'argomento dovrebbe essere array] $ message-> addTo ('[email protected] ',' nome del destinatario '); // Aggiungi l'indirizzo "CC" [Usa il metodo setCc per più destinatari, l'argomento dovrebbe essere array] $ message-> addCc ('[email protected] ',' nome del destinatario '); // Aggiungi l'indirizzo "BCC" [Usa il metodo setBcc per più destinatari, l'argomento dovrebbe essere array] $ message-> addBcc ('[email protected] ',' nome del destinatario '); // Aggiungi un "allegato" (Inoltre, i dati dinamici possono essere allegati) $ attachment = Swift_Attachment :: fromPath ('example.xls'); $ Attachment-> setFilename ( 'Report.xls'); $ Message-> allegare ($ allegato); // Aggiungi inline "Immagine" $ inline_attachment = Swift_Image :: fromPath ('nature.jpg'); $ cid = $ message-> embed ($ inline_attachment); // Imposta il messaggio $ "Body" di testo normale-> setBody ("Questo è il corpo del testo in chiaro del messaggio. \ NGrazie, \ nAdmin"); // Imposta un messaggio $ "Body" -> addPart ('Questa è la versione HTML del messaggio.
Esempio di immagine incorporata:
Grazie,
Admin ',' text / html '); // Invia il messaggio $ result = $ mailer-> send ($ message); catch (Exception $ e) echo $ e-> getMessage ();
Vediamo come funziona questo codice.
La libreria Swift Mailer supporta diversi trasporti come SMTP e Sendmail durante l'invio di una e-mail. Quindi la prima cosa che devi fare è inizializzare il trasporto
oggetto.
Nell'esempio precedente, ho utilizzato il trasporto SMTP per inviare e-mail.
$ transport = (new Swift_SmtpTransport ('smtp.hostname', 25)) -> setUsername ('xxxxxxxx') -> setPassword ('xxxxxxxx');
Naturalmente, se si desidera utilizzare il protocollo Sendmail, è necessario inizializzare il corrispondente Swift_SendmailTransport
oggetto.
// Crea il trasporto di SendMail $ transport = new Swift_SendmailTransport ('/ usr / sbin / sendmail -bs');
Una volta creato il trasporto, dobbiamo inizializzare un oggetto mailer e passare il trasporto che abbiamo già creato.
// Crea il Mailer usando il tuo Trasporto $ mailer = new Swift_Mailer ($ transport);
Dopo aver creato gli oggetti trasporto e mailer, l'unica cosa rimanente è istanziare il Swift_Message
oggetto e decorarlo con gli attributi necessari.
// Crea un messaggio $ message = new Swift_Message ();
Ora, useremo il $ messaggio
oggetto di preparare i contenuti del nostro messaggio. Per cominciare, il SetSubject
metodo ti permette di impostare l'oggetto dell'e-mail.
// Imposta un messaggio $ "soggetto "-> setSubject (" Demo message using the SwiftMailer library. ");
Il setFrom
metodo è usato per impostare l'indirizzo "Da" dell'email.
// Imposta il messaggio "Da indirizzo" $-> setFrom (['[email protected]' => 'Nome mittente']);
Andando avanti, impostiamo l'indirizzo "A" dell'e-mail. In effetti, ci sono un paio di varianti per impostare i destinatari dell'email. Se si desidera impostare un singolo destinatario, è possibile utilizzare il aggiungere a
metodo e il impostato
il metodo, d'altra parte, viene utilizzato per impostare più destinatari.
// Imposta "To address" [Usa il metodo setTo per più destinatari, l'argomento dovrebbe essere array] $ message-> addTo ('[email protected] ',' receiver name ');
Il addCc
e addBcc
i metodi vengono utilizzati per impostare rispettivamente gli indirizzi CC e BCC dell'e-mail.
// Aggiungi l'indirizzo "CC" [Usa il metodo setCc per più destinatari, l'argomento dovrebbe essere array] $ message-> addCc ('[email protected] ',' nome del destinatario '); // Aggiungi l'indirizzo "BCC" [Usa il metodo setBcc per più destinatari, l'argomento dovrebbe essere array] $ message-> addBcc ('[email protected] ',' nome del destinatario ');
Successivamente, diamo un'occhiata a come è possibile allegare un file a una e-mail.
Devi prima istanziare il Swift_Attachment
oggetto con un nome file valido. Dopo aver creato l'oggetto allegato, puoi aggiungerlo all'e-mail con allegare
metodo. Inoltre, puoi usare il setFilename
metodo se si desidera modificare il nome file che verrà visualizzato nell'allegato del messaggio.
// Aggiungi un "allegato" (Inoltre, i dati dinamici possono essere allegati) $ attachment = Swift_Attachment :: fromPath ('example.xls'); $ Attachment-> setFilename ( 'Report.xls'); $ Message-> allegare ($ allegato);
Insieme ai normali file allegati, a volte vuoi incorporare immagini nel testo del messaggio. Puoi farlo usando il incorporare
metodo, come mostrato nello snippet seguente. Il incorporare
metodo restituisce l'ID univoco dell'oggetto incorporato, che è possibile utilizzare in un secondo momento nel messaggio mentre si fa riferimento all'immagine tramite src
proprietà.
// Aggiungi inline "Immagine" $ inline_attachment = Swift_Image :: fromPath ('nature.jpg'); $ cid = $ message-> embed ($ inline_attachment);
Quindi, impostiamo il corpo dell'e-mail usando il setBody
metodo.
// Imposta il messaggio $ "Body" di testo normale-> setBody ("Questo è il corpo del testo in chiaro del messaggio. \ NGrazie, \ nAdmin");
Se si desidera impostare la versione HTML del messaggio, è possibile utilizzare il AddPart
metodo, come mostrato nello snippet seguente. Come puoi vedere, stiamo usando $ cid
per fare riferimento all'immagine che abbiamo incorporato in precedenza.
// Imposta un messaggio $ "Body" -> addPart ('Questa è la versione HTML del messaggio.
Esempio di immagine incorporata:
Grazie,
Admin ',' text / html ');
Finalmente, useremo il inviare
metodo dell'oggetto Mailer per inviare l'email.
// Invia il messaggio $ result = $ mailer-> send ($ message);
Prova a eseguire lo script e dovresti ricevere un'email! Fatemi sapere nella sezione commenti se avete problemi.
Oggi abbiamo esaminato una delle librerie PHP più popolari per l'invio di e-mail: Swift Mailer. Con questa libreria, puoi facilmente inviare e-mail dai tuoi script PHP.
Sentiti libero di pubblicare i tuoi pensieri e le tue domande usando il modulo sottostante.