✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Come inviare e-mail WordPress utilizzando il server SMTP

29

Stai riscontrando problemi con l’invio di e-mail in WordPress? Sotto il cofano, WordPress invia e-mail utilizzando la funzione mail() di PHP. A volte, il tuo web hosting non configura correttamente le impostazioni della posta. Di conseguenza, nessuna e-mail può essere inviata dal tuo sito Web WordPress.

Puoi risolvere questo problema utilizzando il server SMTP. Di solito, le società di web hosting forniscono il proprio server SMTP che puoi utilizzare per inviare e-mail al tuo sito web.

In alternativa, puoi scegliere altri server SMTP come Gmail, Mailjet, ecc. Tutto ciò che richiede dettagli di base sul server SMTP come Host, Porta, ecc.

Detto questo, vediamo come utilizzare il server SMTP per inviare le email di WordPress.

PHPMailer in WordPress

WordPress include al suo interno la classe PHPMailer. Se vuoi controllarlo, troverai questo file sotto wp-includes/PHPMailer/PHPMailer.php.

Se configuriamo PHPMailer in WordPress, la wp_mailfunzione invia e-mail tramite questa classe PHPMailer. In tal caso, il wp_mailmetodo non dipende dalle impostazioni di hosting. Invece, usano le impostazioni del tuo server SMTP.

Userò questa classe PHPMailer per le email. Poiché questa classe è già inclusa in WordPress, non è necessario installare la libreria PHPMailer separatamente.

È possibile utilizzare il plug-in SMTP di WP Mail che invia anche e-mail utilizzando server SMTP. Ma consiglio sempre se qualcosa è realizzabile scrivendo un piccolo pezzo di codice, quindi provaci. È buona norma utilizzare il minor numero possibile di plug-in. L’utilizzo di più plug-in sul sito Web aumenta il carico aggiuntivo sul server. E a volte i plugin entrano in conflitto tra loro e possono finire in un sito danneggiato.

Invia e-mail WordPress tramite server SMTP

Prima di procedere, dovresti essere pronto con i tuoi dettagli SMTP come host, porta, nome utente e password.

Se hai pianificato di utilizzare il server SMTP di Gmail, devi modificare alcune impostazioni sul tuo account Google. Per questo, accedi al tuo account Google e fai clic su Account. Una volta che sei nella pagina Account, fai clic su Sicurezza. Scorri verso il basso e troverai le impostazioni "Accesso alle app meno sicure". Impostalo su ON.

Come inviare e-mail WordPress utilizzando il server SMTP

Per configurare PHPMailer in WordPress, è disponibile un hook che è phpmailer_init. Usando phpmailer_inithook, possiamo accedere all’oggetto PHPMailer e impostare gli argomenti su di esso.

Apri il functions.phpfile del tema attivo e inserisci il codice seguente alla fine di un file.

add_action( 'phpmailer_init', 'set_phpmailer_details' );
function set_phpmailer_details( $phpmailer) {
    $phpmailer->isSMTP();     
    $phpmailer->Host = 'YOUR_SMTP HOST';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 'SMTP_PORT'; //25 or 465
    $phpmailer->Username = 'SMTP_USERNAME';
    $phpmailer->Password = 'SMTP_PASSWORD';
    $phpmailer->SMTPSecure = 'ssl'; //ssl or tls
}

Assicurati di sostituire i segnaposto con i valori effettivi. Diciamo che stiamo utilizzando il server SMTP di Gmail, quindi il nostro codice verrà scritto come segue:

add_action( 'phpmailer_init', 'set_phpmailer_details' );
function set_phpmailer_details( $phpmailer) {
    $phpmailer->isSMTP();     
    $phpmailer->Host = 'smtp.googlemail.com'; //gmail smtp host
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 465;
    $phpmailer->Username = 'GMAIL_USERNAME';
    $phpmailer->Password = 'GMAIL_PASSWORD';
    $phpmailer->SMTPSecure = 'ssl';
}

Devi inserire il nome utente e la password effettivi del tuo account Gmail nel codice sopra. Ora prova a inviare e-mail dal tuo sito Web WordPress, l’e-mail dovrebbe iniziare a funzionare.

Debug del problema dell’e-mail

In questo momento, anche dopo aver utilizzato PHPMailer, le tue e-mail non funzionano, quindi utilizzando l’ wp_mail_failedazione puoi ottenere la causa del problema. Utilizzare il codice seguente per eseguire il debug del problema.

add_action('wp_mail_failed', 'log_mailer_errors', 10, 1);
function log_mailer_errors( $wp_error ){
    $fn = ABSPATH. '/mail.log'; // say you've got a mail.log file in your server root
    $fp = fopen($fn, 'a');
    fputs($fp, "Mailer Error: ". $wp_error->get_error_message() ."n");
    fclose($fp);
}

Spero che tu capisca come inviare e-mail WordPress utilizzando il server SMTP. Per favore condividi i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.

articoli Correlati

Fonte di registrazione: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More