
Esistono diverse librerie che in PHP permettono di inviare e-mail. Una delle più famose e utilizzate è PHPMailer.
Può essere installata via Composer in quanto disponibile su Packagist. Se nel sistema è disponibile questo package manager sarà sufficiente inoltrare il seguente comando:
composer require phpmailer/phpmailer
per avere tutto il pacchetto a disposizione.
Le principali caratteristiche di PHPMailer sono:
- gestione completa di ogni aspetto del protocollo SMTP (protocollo per invio di posta elettronica);
- gestione degli allegati;
- gestione di varie codifiche e meccanismi di autenticazione di SMTP;
- validazione automatica degli indirizzi email;
- messaggi di errore in 47 lingue;
- molto altro.
Una volta installata e importata la libreria è necessario installare un oggetto PHPMailer, configurare il messaggio da inviare ed invocare il metodo send() per inoltrarlo. Questo lo schema di massima:
$mail = new PHPMailer(true); try { /* * configurazione per invio */ $mail->send(); } catch (Exception $e) { // gestione eccezione }
Passando true al costruttore si abilita l’uso delle eccezioni.
Per configurare l’invio del messaggio si devono curare almeno tre aspetti (tutti da inserire nel corpo del try):
- configurazione dei parametri SMTP che permetteranno l’inoltro della mail:
$mail->isSMTP(); $mail->Host = 'smtp1.example.com;smtp2.example.com'; $mail->SMTPAuth = true; $mail->Username = 'user@example.com'; $mail->Password = 'secret'; $mail->SMTPSecure = 'tls'; $mail->Port = 587;
- la configurazione dei vari indirizzi, non solo quelli di recapito ma anche quello del mittente, indirizzo preimpostato per risposte e le varie copie per conoscenza:
$mail->setFrom('from@example.com', 'Mailer'); $mail->addAddress('joe@example.net', 'Joe User'); $mail->addReplyTo('info@example.com', 'Information'); $mail->addCC('cc@example.com');
- i contenuti veri e propri come oggetto e corpo della mail:
$mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body <b>in bold!</b>';
Oltre a questo ci sono molti altri aspetti che possono essere curati: la documentazione ufficiale potrà fornire grande ispirazione.
Probabilmente avrete già usato PHPMailer, anche se non direttamente magari integrata in qualche altra piattaforma, e se non l’avete già fatto fatelo: si installa velocemente e dischiude un set di strumenti completissimo per la posta elettronica.
Alla prossima!
One Response to “Inviare mail con PHPMailer”
30 Gennaio 2019
GianniBuongiorno,
tutto molto chiaro, tranne nel caso in cui io voglia utilizzare campi specifici come questi:
Nome *
Cognome *
Telefono *
Email *
Sito Personale
Richiesta
Come posso integrarli in modo che vengano letti dal file phpmailer e non solo il subject ed il body?
Spero in una tua risposta,
Saluti.
Gianni