{"id":13318,"date":"2017-11-08T11:41:41","date_gmt":"2017-11-08T10:41:41","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=13318"},"modified":"2017-11-08T11:41:41","modified_gmt":"2017-11-08T10:41:41","slug":"inviare-mail-con-phpmailer","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/inviare-mail-con-phpmailer\/","title":{"rendered":"Inviare mail con PHPMailer"},"content":{"rendered":"<p>Esistono diverse librerie che in PHP permettono di inviare e-mail. Una delle pi\u00f9 famose e utilizzate \u00e8 <a href=\"https:\/\/github.com\/PHPMailer\/PHPMailer\" target=\"_blank\" rel=\"noopener\">PHPMailer<\/a>.<\/p>\n<p>Pu\u00f2 essere installata via <a href=\"http:\/\/www.devapp.it\/wordpress\/composer-gestione-delle-dipendenze-in-php\/\" target=\"_blank\" rel=\"noopener\">Composer <\/a>in quanto disponibile su <a href=\"https:\/\/packagist.org\/packages\/phpmailer\/phpmailer\" target=\"_blank\" rel=\"noopener\">Packagist<\/a>. Se nel sistema \u00e8 disponibile questo package manager sar\u00e0 sufficiente inoltrare il seguente comando:<\/p>\n<pre class=\"lang:sh decode:true \">composer require phpmailer\/phpmailer<\/pre>\n<p>per avere tutto il pacchetto a disposizione.<\/p>\n<p>Le principali caratteristiche di PHPMailer sono:<\/p>\n<ul>\n<li>gestione completa di ogni aspetto del protocollo SMTP (protocollo per invio di posta elettronica);<\/li>\n<li>gestione degli allegati;<\/li>\n<li>gestione di varie codifiche e meccanismi di autenticazione di SMTP;<\/li>\n<li>validazione automatica degli indirizzi email;<\/li>\n<li>messaggi di errore in 47 lingue;<\/li>\n<li>molto altro.<\/li>\n<\/ul>\n<p>Una volta installata e importata la libreria \u00e8 necessario <strong>installare un oggetto PHPMailer<\/strong>, configurare il messaggio da inviare ed invocare il metodo <em>send()<\/em> per inoltrarlo. Questo lo schema di massima:<\/p>\n<pre class=\"lang:php decode:true\">$mail = new PHPMailer(true);                              \r\ntry {\r\n\r\n     \/*\r\n      *   configurazione per invio\r\n      *\/\r\n\r\n \r\n    $mail-&gt;send();\r\n    \r\n} catch (Exception $e) {\r\n    \/\/ gestione eccezione\r\n}<\/pre>\n<p>Passando <em>true<\/em> al costruttore si abilita l&#8217;uso delle eccezioni.<\/p>\n<p>Per configurare l&#8217;invio del messaggio si devono curare almeno tre aspetti (<strong>tutti da inserire nel corpo del <em>try<\/em><\/strong>):<\/p>\n<ul>\n<li>configurazione dei <strong>parametri SMTP<\/strong> che permetteranno l&#8217;inoltro della mail:\n<pre class=\"lang:php decode:true \">$mail-&gt;isSMTP();                                \r\n$mail-&gt;Host = 'smtp1.example.com;smtp2.example.com';\r\n$mail-&gt;SMTPAuth = true;   \r\n$mail-&gt;Username = 'user@example.com';                 \r\n$mail-&gt;Password = 'secret';                          \r\n$mail-&gt;SMTPSecure = 'tls';                        \r\n$mail-&gt;Port = 587;<\/pre>\n<\/li>\n<li>la configurazione dei vari <strong>indirizzi<\/strong>, non solo quelli di recapito ma anche quello del mittente, indirizzo preimpostato per risposte e le varie copie per conoscenza:\n<pre class=\"lang:php decode:true \"> $mail-&gt;setFrom('from@example.com', 'Mailer');\r\n $mail-&gt;addAddress('joe@example.net', 'Joe User');\r\n $mail-&gt;addReplyTo('info@example.com', 'Information');\r\n $mail-&gt;addCC('cc@example.com');<\/pre>\n<\/li>\n<li>i <strong>contenuti<\/strong> veri e propri come oggetto e corpo della mail:\n<pre class=\"lang:php decode:true \">$mail-&gt;Subject = 'Here is the subject';\r\n$mail-&gt;Body    = 'This is the HTML message body &lt;b&gt;in bold!&lt;\/b&gt;';<\/pre>\n<\/li>\n<\/ul>\n<p>Oltre a questo ci sono molti altri aspetti che possono essere curati: la documentazione ufficiale potr\u00e0 fornire grande ispirazione.<\/p>\n<p>Probabilmente avrete gi\u00e0 usato PHPMailer, anche se non direttamente magari integrata in qualche altra piattaforma, e se non l&#8217;avete gi\u00e0 fatto fatelo: si installa velocemente e dischiude un set di strumenti completissimo per la posta elettronica.<\/p>\n<p>Alla prossima!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esistono diverse librerie che in PHP permettono di inviare e-mail. Una delle pi\u00f9 famose e utilizzate \u00e8&#8230;<\/p>\n","protected":false},"author":561,"featured_media":13320,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[2038,131,2037,2036],"class_list":["post-13318","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial-pratici","tag-inviare-mail","tag-php","tag-posta-elettronica","tag-smtp"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13318","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=13318"}],"version-history":[{"count":3,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13318\/revisions"}],"predecessor-version":[{"id":13322,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13318\/revisions\/13322"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/13320"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=13318"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=13318"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=13318"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}