Come inviare e-mail WordPress utilizzando il server SMTP
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_mail
funzione invia e-mail tramite questa classe PHPMailer. In tal caso, il wp_mail
metodo 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.
Per configurare PHPMailer in WordPress, è disponibile un hook che è phpmailer_init. Usando phpmailer_init
hook, possiamo accedere all’oggetto PHPMailer e impostare gli argomenti su di esso.
Apri il functions.php
file 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_failed
azione 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
- Invia e-mail utilizzando il server SMTP di Gmail dallo script PHP
- Invio di e-mail tramite il server SMTP di Gmail in Laravel
- Invia e-mail utilizzando Mailjet in PHP