{"id":8340,"date":"2026-03-12T05:12:20","date_gmt":"2026-03-12T05:12:20","guid":{"rendered":"\/it\/tutorial\/?p=8340"},"modified":"2026-03-18T07:54:20","modified_gmt":"2026-03-18T07:54:20","slug":"come-inviare-email-con-phpmailer","status":"publish","type":"post","link":"\/it\/tutorial\/come-inviare-email-con-phpmailer","title":{"rendered":"Come inviare email dal server con PHPMailer"},"content":{"rendered":"<p>L&rsquo;email &egrave; essenziale per qualsiasi sito web. Viene utilizzata per tutto, dal reset delle password alle richieste dei clienti. La funzione PHP <strong>mail()<\/strong> pu&ograve; inviare messaggi semplici, ma spesso non riesce a recapitarli nella posta in arrivo e non offre le funzionalit&agrave; su cui le aziende fanno affidamento.<\/p><p><strong>PHPMailer<\/strong> risolve questi problemi offrendo autenticazione SMTP, crittografia sicura, formattazione HTML e supporto per gli allegati. In questo modo i tuoi messaggi hanno un aspetto professionale e raggiungono davvero i destinatari.<\/p><p>Per sfruttare al meglio PHPMailer, devi sapere come:<\/p><ul class=\"wp-block-list\">\n<li>Installare la libreria con Composer o manualmente<\/li>\n\n\n\n<li>Configurare le impostazioni SMTP per una consegna affidabile<\/li>\n\n\n\n<li>Usare i componenti principali di PHPMailer come <strong>setFrom()<\/strong>, <strong>addAddress()<\/strong> e <strong>Body<\/strong><\/li>\n\n\n\n<li>Creare un modulo di contatto funzionante con validazione<\/li>\n\n\n\n<li>Collegare PHPMailer a Gmail e ad altri fornitori<\/li>\n\n\n\n<li>Risolvere errori comuni come i problemi di connessione SMTP e di autenticazione DNS<\/li>\n<\/ul><h2 class=\"wp-block-heading\" id=\"h-what-is-phpmailer\">Cos&rsquo;&egrave; PHPMailer<\/h2><p>PHPMailer &egrave; una libreria PHP che ti permette di inviare email direttamente dal tuo <a href=\"\/it\/tutorial\/cos-e-un-server\">server<\/a>. A differenza della funzione PHP mail(), supporta funzionalit&agrave; avanzate come:<\/p><ul class=\"wp-block-list\">\n<li>Autenticazione <a href=\"\/it\/tutorial\/porta-smtp\">SMTP<\/a> e crittografia (<a href=\"\/it\/tutorial\/cos-e-un-certificato-ssl\">SSL<\/a>\/TLS)<\/li>\n\n\n\n<li>Messaggi HTML e versioni alternative in testo semplice<\/li>\n\n\n\n<li>Allegati e immagini inline<\/li>\n\n\n\n<li>Intestazioni personalizzate e indirizzi Reply-To<\/li>\n<\/ul><p>Queste funzionalit&agrave; rendono PHPMailer una delle soluzioni pi&ugrave; utilizzate dagli sviluppatori che hanno bisogno di gestire email in modo sicuro e professionale nelle loro applicazioni.<\/p><h3 class=\"wp-block-heading\" id=\"h-is-phpmailer-better-than-the-mail-function\">PHPMailer &egrave; meglio della funzione mail()?<\/h3><p>S&igrave;, nella maggior parte dei casi PHPMailer &egrave; una scelta migliore rispetto alla funzione mail(). Ecco perch&eacute;:<\/p><ul class=\"wp-block-list\">\n<li><strong>Affidabilit&agrave;<\/strong>. Funziona con SMTP, riducendo la probabilit&agrave; che le email finiscano nello spam.<\/li>\n\n\n\n<li><strong>Sicurezza<\/strong>. Supporta metodi di autenticazione moderni come TLS.<\/li>\n\n\n\n<li><strong>Flessibilit&agrave;<\/strong>. Permette di aggiungere allegati, usare la formattazione HTML e configurare intestazioni avanzate.<\/li>\n\n\n\n<li><strong>Compatibilit&agrave;<\/strong>. &Egrave; ampiamente supportato e viene aggiornato regolarmente per funzionare con le nuove versioni di PHP.<\/li>\n<\/ul><p>Se stai sviluppando qualcosa che va oltre un semplice script, PHPMailer offre molto pi&ugrave; controllo e affidabilit&agrave; rispetto alla funzione mail().<\/p><h2 class=\"wp-block-heading\" id=\"h-come-usare-phpmailer-per-inviare-email\">Come usare PHPMailer per inviare email<\/h2><p>Segui questi passaggi per inviare email con PHPMailer:<\/p><ol class=\"wp-block-list\">\n<li><strong>Scarica e installa PHPMailer<\/strong> usando Composer o GitHub.<\/li>\n\n\n\n<li><strong>Carica la libreria<\/strong> nel tuo script PHP tramite un autoloader oppure manualmente.<\/li>\n\n\n\n<li><strong>Crea una nuova istanza di PHPMailer<\/strong>.<\/li>\n\n\n\n<li><strong>Configura le impostazioni SMTP<\/strong> (server, porta, nome utente e password).<\/li>\n\n\n\n<li><strong>Imposta i dettagli dell&rsquo;email<\/strong> come il mittente, il destinatario, l&rsquo;oggetto e il contenuto del messaggio.<\/li>\n\n\n\n<li><strong>Invia l&rsquo;email<\/strong> e gestisci eventuali errori.<\/li>\n<\/ol><p>Ecco un semplice esempio:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\nuse PHPMailer\\PHPMailer\\PHPMailer;\nuse PHPMailer\\PHPMailer\\Exception;\n\nrequire 'vendor\/autoload.php';\n\n$mail = new PHPMailer(true);\n\ntry {\n    \/\/ Configurazione SMTP\n    $mail-&gt;isSMTP();\n    $mail-&gt;Host       = 'smtp.example.com';\n    $mail-&gt;SMTPAuth   = true;\n    $mail-&gt;Username   = 'tua@email.com';\n    $mail-&gt;Password   = 'password';\n    $mail-&gt;SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;\n    $mail-&gt;Port       = 587;\n\n    \/\/ Impostazioni email\n    $mail-&gt;setFrom('tua@email.com', 'Tuo nome');\n    $mail-&gt;addAddress('destinatario@dominio.com');\n    $mail-&gt;Subject = 'Email di prova';\n    $mail-&gt;Body    = 'Questa &egrave; una email di prova inviata con PHPMailer.';\n\n    $mail-&gt;send();\n    echo 'Il messaggio &egrave; stato inviato';\n} catch (Exception $e) {\n    echo \"Errore: {$mail-&gt;ErrorInfo}\";\n}<\/pre><h3 class=\"wp-block-heading\">Installazione di PHPMailer<\/h3><p>Il modo pi&ugrave; semplice per installare PHPMailer &egrave; usare <strong>Composer<\/strong>, il gestore delle dipendenze per PHP. Esegui questo comando nella directory principale del tuo progetto:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">composer require phpmailer\/phpmailer<\/pre><p>Dopo l&rsquo;installazione, troverai PHPMailer all&rsquo;interno della cartella <strong>vendor\/<\/strong> del progetto:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/your-project  \n  \/vendor  \n    \/phpmailer  \n      \/phpmailer  <\/pre><p>Per usarlo, carica l&rsquo;autoloader di Composer all&rsquo;inizio dello script PHP:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">require 'vendor\/autoload.php';<\/pre><p>Se non usi Composer, puoi anche scaricare PHPMailer da GitHub. In questo caso, inserisci la cartella PHPMailer nel progetto e includi i file manualmente:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">require 'PHPMailer\/src\/PHPMailer.php';\nrequire 'PHPMailer\/src\/SMTP.php';\nrequire 'PHPMailer\/src\/Exception.php';<\/pre><p>Composer &egrave; fortemente consigliato per chi &egrave; alle prime armi, perch&eacute; gestisce le dipendenze e rende pi&ugrave; semplici gli aggiornamenti.<\/p><h3 class=\"wp-block-heading\">Come funzionano i componenti di PHPMailer<\/h3><p>PHPMailer offre diversi metodi e propriet&agrave; per creare email professionali. Ecco quelli pi&ugrave; importanti, insieme a brevi esempi che puoi riutilizzare:<\/p><ul class=\"wp-block-list\">\n<li><strong>setFrom()<\/strong> &ndash; definisce l&rsquo;indirizzo e il nome del mittente.<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"> $mail-&gt;setFrom('no-reply@domain.com', 'Nome del sito web');<\/pre><ul class=\"wp-block-list\">\n<li><strong>addAddress()<\/strong> &ndash; aggiunge uno o pi&ugrave; destinatari.<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$mail-&gt;addAddress('utente@example.com', 'John Doe');\n$mail-&gt;addAddress('admin@example.com'); \/\/ pi&ugrave; destinatari<\/pre><ul class=\"wp-block-list\">\n<li><strong>addReplyTo()<\/strong> &ndash; specifica l&rsquo;indirizzo email di risposta. &Egrave; utile per i moduli di contatto.<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$mail-&gt;addReplyTo('supporto@dominio.com', 'Team di supporto');<\/pre><ul class=\"wp-block-list\">\n<li><strong>Subject<\/strong> &ndash; imposta l&rsquo;oggetto dell&rsquo;email.<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$mail-&gt;Subject = 'Conferma ordine';<\/pre><ul class=\"wp-block-list\">\n<li><strong>Body<\/strong> &ndash; definisce il contenuto principale dell&rsquo;email in HTML o in testo semplice.<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$mail-&gt;Body = '&lt;h1&gt;Grazie!&lt;\/h1&gt;&lt;p&gt;Il tuo ordine &egrave; stato ricevuto.&lt;\/p&gt;';<\/pre><ul class=\"wp-block-list\">\n<li><strong>AltBody<\/strong> &ndash; fornisce un&rsquo;alternativa in testo semplice per i client che non supportano HTML.<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$mail-&gt;AltBody = 'Grazie! Il tuo ordine &egrave; stato ricevuto.';<\/pre><ul class=\"wp-block-list\">\n<li><strong>addAttachment()<\/strong> &ndash; allega file all&rsquo;email.<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$mail-&gt;addAttachment('\/path\/to\/fattura.pdf', 'Fattura.pdf');<\/pre><p>Questi componenti ti permettono di controllare completamente il contenuto e il funzionamento delle email, offrendo maggiore affidabilit&agrave; rispetto alla funzione PHP <strong>mail()<\/strong>.<\/p><h3 class=\"wp-block-heading\" id=\"h-using-phpmailer-with-hostinger-smtp\">Come usare PHPMailer con l&rsquo;SMTP di Hostinger<\/h3><p>La maggior parte dei fornitori di hosting, incluso Hostinger, ti permette di inviare email tramite i propri <strong>server SMTP<\/strong>. Questo &egrave; il metodo consigliato perch&eacute; migliora il recapito dei messaggi e riduce il rischio che le email vengano contrassegnate come spam.<\/p><p>Per usare l&rsquo;SMTP di Hostinger con PHPMailer, ti serviranno questi dati:<\/p><ul class=\"wp-block-list\">\n<li><strong>Server SMTP<\/strong>: smtp.hostinger.com<\/li>\n\n\n\n<li><strong>Porta<\/strong>: 587 (TLS) oppure 465 (SSL)<\/li>\n\n\n\n<li><strong>Nome utente<\/strong>: il tuo indirizzo email completo (ad esempio, iltuonome@iltuodominio.com)<\/li>\n\n\n\n<li><strong>Password<\/strong>: la password dell&rsquo;account email<\/li>\n<\/ul><p>Ecco un esempio di configurazione:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$mail-&gt;isSMTP();\n$mail-&gt;Host       = 'smtp.hostinger.com';\n$mail-&gt;SMTPAuth   = true;\n$mail-&gt;Username   = 'tua@hostinger.com';\n$mail-&gt;Password   = 'password';\n$mail-&gt;SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; \/\/ or ENCRYPTION_SMTPS for port 465\n$mail-&gt;Port       = 587;<\/pre><p>&#128273; <strong>Consigli per chi &egrave; alle prime armi:<\/strong><\/p><ul class=\"wp-block-list\">\n<li>Verifica di aver gi&agrave; creato un account email in <strong>hPanel<\/strong> &rarr; <strong>Email<\/strong> &rarr; <strong>Caselle di posta<\/strong> &rarr; <strong>Aggiungi caselle di posta<\/strong>.<\/li>\n\n\n\n<li>Usa la <strong>password SMTP<\/strong> che hai impostato quando hai creato l&rsquo;account email, non la password di accesso a Hostinger.<\/li>\n\n\n\n<li>Prova ad accedere prima a <strong>Webmail<\/strong> con le stesse credenziali. Se funzionano l&igrave;, dovrebbero funzionare anche con PHPMailer.<\/li>\n<\/ul><p>Una volta configurato, PHPMailer utilizzer&agrave; i server di Hostinger per inviare email in modo sicuro.<\/p><h3 class=\"wp-block-heading\">Come creare un modulo di contatto con PHPMailer<\/h3><p>PHPMailer viene spesso utilizzato per gestire i moduli di contatto. Avrai bisogno di un modulo HTML nella pagina e di uno script PHP che usa PHPMailer per inviare il messaggio.<\/p><p><strong>Passaggio 1. Aggiungi un modulo HTML di base<\/strong><\/p><p>Questo modulo raccoglie il nome, l&rsquo;indirizzo email e il messaggio del visitatore. Salvalo come <strong>index.html<\/strong> oppure inseriscilo direttamente nella pagina web:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;form method=\"POST\" action=\"\/contact.php\"&gt;\n  &lt;label for=\"name\"&gt;Nome&lt;\/label&gt;\n  &lt;input id=\"name\" name=\"name\" type=\"text\" required&gt;\n\n  &lt;label for=\"email\"&gt;Email&lt;\/label&gt;\n  &lt;input id=\"email\" name=\"email\" type=\"email\" required&gt;\n\n  &lt;label for=\"message\"&gt;Messaggio&lt;\/label&gt;\n  &lt;textarea id=\"message\" name=\"message\" rows=\"6\" required&gt;&lt;\/textarea&gt;\n\n  &lt;button type=\"submit\"&gt;Invia&lt;\/button&gt;\n&lt;\/form&gt;<\/pre><p><strong>Passaggio 2. Gestisci la richiesta POST con PHPMailer<\/strong><\/p><p>Ora che il modulo &egrave; pronto, crea uno script PHP (<strong>contact.php<\/strong>) per elaborare l&rsquo;invio e inviare il messaggio tramite PHPMailer. Questo script recupera i dati inviati dal modulo, li verifica, quindi li invia al tuo indirizzo email tramite PHPMailer:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\nuse PHPMailer\\PHPMailer\\PHPMailer;\nuse PHPMailer\\PHPMailer\\Exception;\n\nrequire 'vendor\/autoload.php';\n\nif ($_SERVER['REQUEST_METHOD'] === 'POST') {\n    \/\/ Validazione e sanitizzazione di base\n    $name    = trim($_POST['name'] ?? '');\n    $email   = trim($_POST['email'] ?? '');\n    $message = trim($_POST['message'] ?? '');\n\n    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {\n        exit('Indirizzo email non valido.');\n    }\n    \/\/ Escape del contenuto dell&rsquo;utente prima di inserirlo nell&rsquo;HTML\n    $safeName    = htmlspecialchars($name, ENT_QUOTES, 'UTF-8');\n    $safeEmail   = htmlspecialchars($email, ENT_QUOTES, 'UTF-8');\n    $safeMessage = nl2br(htmlspecialchars($message, ENT_QUOTES, 'UTF-8'));\n\n    $mail = new PHPMailer(true);\n\n    try {\n        \/\/ SMTP\n        $mail-&gt;isSMTP();\n        $mail-&gt;Host       = 'smtp.hostinger.com';\n        $mail-&gt;SMTPAuth   = true;\n        $mail-&gt;Username   = 'tuo@hostinger.com';\n        $mail-&gt;Password   = 'password';\n        $mail-&gt;SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; \/\/ 587\n        $mail-&gt;Port       = 587;\n\n        \/\/ Contenuto dell&rsquo;email\n        $mail-&gt;setFrom('tuo@hostinger.com', 'Contatto del sito');\n        $mail-&gt;addAddress('tuo@hostinger.com', 'Posta in arrivo');\n        $mail-&gt;addReplyTo($email, $name);\n\n        $mail-&gt;Subject = 'Nuovo invio dal modulo di contatto';\n        $mail-&gt;isHTML(true);\n        $mail-&gt;Body    = \"&lt;p&gt;&lt;strong&gt;Nome:&lt;\/strong&gt; {$safeName}&lt;\/p&gt;\n                          &lt;p&gt;&lt;strong&gt;Email:&lt;\/strong&gt; {$safeEmail}&lt;\/p&gt;\n                          &lt;p&gt;&lt;strong&gt;Messaggio:&lt;\/strong&gt;&lt;br&gt;{$safeMessage}&lt;\/p&gt;\";\n        $mail-&gt;AltBody = \"Nome: {$name}\\nEmail: {$email}\\nMessaggio:\\n{$message}\";\n\n        \/\/ Caricamento file opzionale\n        \/\/ if (!empty($_FILES['attachment']['tmp_name'])) {\n        \/\/     $mail-&gt;addAttachment($_FILES['attachment']['tmp_name'], $_FILES['attachment']['name']);\n        \/\/ }\n\n        $mail-&gt;send();\n        echo 'Messaggio inviato con successo.';\n    } catch (Exception $e) {\n        echo 'Errore: ' . $mail-&gt;ErrorInfo;\n    }\n}<\/pre><p><strong>Consigli utili:<\/strong><\/p><ul class=\"wp-block-list\">\n<li>Convalida l&rsquo;input sia lato client sia lato server per prevenire spam e abusi.<\/li>\n\n\n\n<li>Imposta <strong>From<\/strong> con un indirizzo del tuo dominio e usa <strong>addReplyTo()<\/strong> con l&rsquo;email del visitatore, cos&igrave; le risposte verranno inviate direttamente a lui.<\/li>\n\n\n\n<li>Valuta di aggiungere un campo honeypot o un CAPTCHA per ridurre gli invii automatici dei bot.<\/li>\n<\/ul><h2 class=\"wp-block-heading\" id=\"h-come-risolvere-gli-errori-piu-comuni-di-phpmailer\">Come risolvere gli errori pi&ugrave; comuni di PHPMailer<\/h2><p>PHPMailer mostra messaggi di errore dettagliati che ti aiutano a individuare rapidamente il problema. Ecco alcuni degli errori pi&ugrave; comuni e come risolverli.<\/p><h3 class=\"wp-block-heading\">Impossibile connettersi all&rsquo;host SMTP<\/h3><p>Questo errore di solito significa che l&rsquo;indirizzo o la porta del server SMTP non sono corretti. Le cause pi&ugrave; comuni includono:<\/p><ul class=\"wp-block-list\">\n<li><strong>Nome del server errato<\/strong>. Controlla di nuovo i dettagli SMTP forniti dal tuo hosting. Ad esempio, con Hostinger il server SMTP &egrave; di solito smtp.hostinger.com.<\/li>\n\n\n\n<li><strong>Porta bloccata<\/strong>. Molti server bloccano la porta 25. Usa invece la <a href=\"\/it\/tutorial\/porta-587-smtp\">porta 587<\/a> (TLS) oppure 465 (SSL).<\/li>\n\n\n\n<li><strong>Restrizioni del firewall<\/strong>. Se stai testando in locale (per esempio con XAMPP o WAMP), il tuo ISP o il firewall potrebbero bloccare le connessioni SMTP in uscita.<\/li>\n<\/ul><p>&#128073; Se non sei sicuro delle impostazioni da usare, chiedi al tuo fornitore di hosting quali dati SMTP usare e verifica che le porte siano aperte sulla tua rete.<\/p><h3 class=\"wp-block-heading\">Connessione SMTP non riuscita (SMTP connect() failed)<\/h3><p>Questo errore indica spesso un problema di autenticazione. In pratica, PHPMailer riesce a raggiungere il server, ma le credenziali non vengono accettate. Le cause pi&ugrave; comuni sono:<\/p><ul class=\"wp-block-list\">\n<li><strong>Nome utente errato<\/strong>. Usa sempre il tuo indirizzo email completo come nome utente SMTP.<\/li>\n\n\n\n<li><strong>Password errata<\/strong>. Se hai cambiato di recente la password dell&rsquo;account email, aggiornala anche nello script.<\/li>\n\n\n\n<li><strong>Metodo di crittografia non corretto<\/strong>. Verifica di usare il metodo di sicurezza giusto. Ad esempio:\n<ul class=\"wp-block-list\">\n<li>Porta <strong>587<\/strong> &rarr; PHPMailer::ENCRYPTION_STARTTLS<\/li>\n\n\n\n<li>Porta <strong>465<\/strong> &rarr; PHPMailer::ENCRYPTION_SMTPS<\/li>\n<\/ul>\n<\/li>\n<\/ul><p>&#128073; Se il problema persiste, prova ad accedere al tuo account tramite Webmail per verificare che le credenziali siano corrette.<\/p><h3 class=\"wp-block-heading\">Messaggio rifiutato a causa di SPF, DKIM o DMARC<\/h3><p>Questo significa che il server di posta del destinatario ha rifiutato il messaggio perch&eacute; il dominio non ha record di autenticazione configurati correttamente. Si tratta di record DNS che dimostrano che sei autorizzato a inviare email dal tuo dominio.<\/p><ul class=\"wp-block-list\">\n<li><strong>SPF (Sender Policy Framework)<\/strong>. Indica ai server di posta quali IP o host possono inviare email per il tuo dominio.<\/li>\n\n\n\n<li><strong>DKIM (DomainKeys Identified Mail)<\/strong>. Aggiunge una firma digitale che conferma che il messaggio non &egrave; stato modificato durante l&rsquo;invio.<\/li>\n\n\n\n<li><strong>DMARC (Domain-based Message Authentication, Reporting &amp; Conformance)<\/strong>. Indica ai server destinatari come gestire i messaggi che non superano i controlli SPF o DKIM.<\/li>\n<\/ul><p>&#128073; Per risolvere il problema, accedi al pannello del tuo registrar di domini o al pannello di hosting e aggiungi i record DNS richiesti. La maggior parte dei fornitori di hosting, incluso Hostinger, offre guide passo per passo per configurare SPF, DKIM e DMARC.<\/p><p>Senza questi record, &egrave; molto pi&ugrave; probabile che le email finiscano nello spam o vengano rifiutate completamente.<\/p><h2 class=\"wp-block-heading\" id=\"h-posso-inviare-email-con-phpmailer-a-gmail-o-ad-altri-servizi-email\">Posso inviare email con PHPMailer a Gmail o ad altri servizi email?<\/h2><p>S&igrave;. PHPMailer funziona con Gmail, Outlook, Yahoo e con la maggior parte degli altri fornitori. Ti servono solo le impostazioni SMTP corrette e il metodo di autenticazione giusto. Per esempio, per Gmail puoi usare queste impostazioni:<\/p><ul class=\"wp-block-list\">\n<li><strong>Server SMTP<\/strong>: smtp.gmail.com<\/li>\n\n\n\n<li><strong>Porta<\/strong>: 587 (TLS) oppure 465 (SSL)<\/li>\n\n\n\n<li><strong>Nome utente<\/strong>: il tuo indirizzo Gmail completo<\/li>\n\n\n\n<li><strong>Password<\/strong>: la <strong>password per le app<\/strong> se hai attivato la verifica in due passaggi<\/li>\n\n\n\n<li>Nel tuo Account Google, crea una password per le app in <strong>Sicurezza<\/strong> &rarr; <strong>Verifica in due passaggi<\/strong> &rarr; <strong>Password<\/strong> per le app e usala nel parametro $mail-&gt;Password.<\/li>\n<\/ul><p><strong>Esempio:<\/strong><\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$mail-&gt;isSMTP();\n$mail-&gt;Host       = 'smtp.gmail.com';\n$mail-&gt;SMTPAuth   = true;\n$mail-&gt;Username   = 'iltuonome@gmail.com';\n$mail-&gt;Password   = 'tua-password-per-le-app'; \/\/ non la tua normale password di accesso\n$mail-&gt;SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;\n$mail-&gt;Port       = 587;<\/pre><p>Tieni presente che alcuni fornitori applicano limiti di invio. Molte caselle email gratuite hanno un limite giornaliero di messaggi. Ad esempio, Gmail ha un limite relativamente basso per l&rsquo;invio tramite SMTP. Se hai bisogno di inviare pi&ugrave; email o di migliorare la velocit&agrave; di consegna, valuta l&rsquo;uso di un servizio email dedicato. PHPMailer pu&ograve; comunicare con qualsiasi server SMTP, quindi passare a un altro fornitore in futuro &egrave; semplice.<\/p><p><strong>Checklist generale:<\/strong><\/p><ul class=\"wp-block-list\">\n<li>Usa la porta e il metodo di crittografia consigliati dal fornitore.<\/li>\n\n\n\n<li>Autenticati con le credenziali corrette.<\/li>\n\n\n\n<li>Imposta <strong>From<\/strong> su un indirizzo del dominio che controlli per migliorare il recapito.<\/li>\n\n\n\n<li>Aggiungi i record <strong>SPF<\/strong>, <strong>DKIM<\/strong> e <strong>DMARC<\/strong> al dominio per aumentare l&rsquo;affidabilit&agrave; delle email.<\/li>\n<\/ul><h2 class=\"wp-block-heading\" id=\"h-lemail-e-ancora-la-base-dei-servizi-online\">L&rsquo;email &egrave; ancora la base dei servizi online?<\/h2><p>S&igrave;. L&rsquo;email resta uno dei metodi pi&ugrave; affidabili per inviare messaggi transazionali, campagne di marketing e risposte dell&rsquo;assistenza clienti, anche con la diffusione di nuovi strumenti di comunicazione. Per le aziende, una configurazione email professionale con automazione permette di risparmiare tempo e migliorare il coinvolgimento degli utenti.<\/p><p>Se vuoi andare oltre l&rsquo;invio manuale delle email, valuta l&rsquo;uso di strumenti di <a href=\"\/it\/tutorial\/automazione-email-marketing\">automazione dell&rsquo;email marketing<\/a> per gestire campagne e comunicazioni con i clienti in modo pi&ugrave; efficiente.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;email &egrave; essenziale per qualsiasi sito web. Viene utilizzata per tutto, dal reset delle password alle richieste dei clienti. La funzione PHP mail() pu&ograve; inviare messaggi semplici, ma spesso non riesce a recapitarli nella posta in arrivo e non offre le funzionalit&agrave; su cui le aziende fanno affidamento. PHPMailer risolve questi problemi offrendo autenticazione SMTP, [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/it\/tutorial\/come-inviare-email-con-phpmailer\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":190,"featured_media":8339,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"Come inviare email con PHPMailer","rank_math_description":"Scopri come inviare email con PHPMailer usando SMTP. Guida passo per passo con esempi PHP, configurazione e soluzioni agli errori pi\u00f9 comuni.","rank_math_focus_keyword":"inviare email con phpmailer","footnotes":""},"categories":[26],"tags":[],"class_list":["post-8340","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-email"],"hreflangs":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/posts\/8340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/users\/190"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/comments?post=8340"}],"version-history":[{"count":12,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/posts\/8340\/revisions"}],"predecessor-version":[{"id":8692,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/posts\/8340\/revisions\/8692"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/media\/8339"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/media?parent=8340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/categories?post=8340"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/tags?post=8340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}