PHPMailer – Inviare email non è mai stato così facile

Per arricchire la nostra dispensa, oggi vedremo l’utilizzo dell’ormai famosa classe PHPMailer.
Penso che ormai ogni programmatore PHP almeno una volta nella sua vita, abbia avuto a che fare con la funzione mail() e con i problemi ad essa collegati: dichiarare tutti gli header, trovare il modo per inviare uno o più allegati, inviare testo in formato HTML. E per chi ha tentato di scrivere una Newsletter in PHP, avrà sicuramente notato la reazione che hanno i server di posta: SPAM!

La soluzione è semplice e potente: PHPMailer!

Pubblicata per la prima volta il 17 aprile 2001 dalla software house Worx International Inc., la classe PHPMailer venne modificata migliorandone le prestazioni, le funzionalità e facendola adattare sia al vecchio PHP4 che ai più recenti PHP5 e 6.
L’ultima release pubblica riguarda la versione 2.3 rilasciata il 10 novembre 2008.

Per evitare confusioni future, tengo a precisare che questo articolo si riferisce alla versione 2.3 per PHP5/PHP6.
Vediamo una panoramica di questa potentissima classe.

Scarichiamo i file della classe hostati da sourceforge.net. Noteremo subito che i file della classe sono 3: class.phpmailer.php, class.pop3.php e class.smtp.php, ma a noi basterà tenerli nella stessa cartella ed includere quello principale: class.phpmailer.php

Impostiamo la struttura che dovrà avere la nostra classe.

require_once('class.phpmailer.php'); //includiamo il file
$mail = new PHPMailer(); //inizializziamo la classe
/* Qui andremo ad inserire le varie impostazioni
che analizzeremo subito sotto */
$result = $mail->Send(); //Inviamo le nostre email
if($result)  //Controlliamo l'esito dell'operazione
echo "Messaggio inviato con successo!"
else
echo "Errore: " . $mail->ErrorInfo;

Passiamo ora ad analizzare tutte le funzionalità che offre PHPMailer.

$mail->SetFrom('mittente@firecode.it', 'Firecode.it'); //Impostiamo il mittente inserendo l'email e il nome
$mail->AddAddress('destinatario@firecode.it', 'Mario Rossi'); //Impostiamo il destinatario inserendo l'email e il nome
$mail->AddAddress('destinatario2@firecode.it', 'Giuseppe Bianchi'); //La nostra classe regge infiniti destinatari!
//Diamo un oggetto alla nostra email!
$mail->Subject = 'La nostra prima mail con PHPMailer';
//Non ci resta che inserire il nostro messaggio
$body = "<body><h1>Ciao!</h1><p>Questo e' il mio primo messaggio tramite la classe PHPMailer!</p></body>";
$mail->MsgHTML($body);
//E ora ... $mail->Send()!

Bene bene… viste le basi, approfondiamo!

Mettiamo conto che uso la classe per mandare Newsletter ma se qualcuno mi vuole rispondere deve scrivermi ad un altro indirizzo. Detto fatto!

$mail->AddReplyTo('miaemail@dominio.it', 'Matteo Manchi');

E per gli allegati? Niente di più semplice

$mail->AddAttachment('indirizzo/del/file/da/includere/file.ext');

Avete paura che i vostri destinatari non possano leggere l’HTML nelle pagine? Diamogli un’alternativa:

$mail->AltBody = "Il tuo client di posta non consente di visualizzare correttamente questa email. Prova a quest'indirizzo: http://www.firecode.it/blog/2010/10/20/phpmailer/";

Arriviamo alla funzionalità più interessante, a mio avviso. Il metodo semplice come descritto sopra invia l’email tramite le funzioni che PHP ci mette a disposizione. Vogliamo evitare problemi di blacklist, essere più sicuri che il messaggio non arrivi in SPAM o come Posta Indesiderata? Utilizziamo una nostra email (o una dedicata) per l’invio tramite SMTP. Preoccupati? Nulla di complicato!

$mail->IsSMTP(); //impostiamo l'utilizzo dell'SMTP
$mail->SMTPAuth = true; //Si, vogliamo inviare con autenticazione
$mail->Host = 'smtp.dominio.com'; //il nostro server smtp
$mail->Port = 26;
$mail->Username = 'nome@dominio.com'; //impostiamo l'username
$mail->Password = '123456789'; //impostiamo la password del nostro account smtp
//altre impostazioni ...
//ed infine $mail->Send();

A questo punto avete tutti gli strumenti principali per creare il vostro Email Sender! :D
Per un uso più avanzato rimando gli interessati al sito principale  con i relativi esempi -> PHPMailer

Buon Invio! :)



Ti è piaciuto l'articolo? Vota Ok oppure No. Grazie Mille!

Post Correlati:

Resta aggiornato abbonandoti al feed RSS 2.0. Puoi lasciare un commento oppure inviare un trackback dal tuo sito.

Lascia un Commento

XHTML: È possibile utilizzare questi marcatori: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>