WordPress utilizza la funzione wp_mail()
per inviare email, ma di default si affida alla funzione PHP mail()
, che può non essere affidabile su alcuni server. Impostare SMTP manualmente è una soluzione più sicura ed efficace.
Modifica del file wp-config.php
Per evitare l'uso di plugin, possiamo configurare i parametri SMTP direttamente nel file wp-config.php
. Aggiungi il seguente codice prima della riga /* That’s all, stop editing! Happy publishing. */
:
define('SMTP_HOST', 'smtp.tuodominio.com');
define('SMTP_PORT', 587);
define('SMTP_USERNAME', 'tuo@email.com');
define('SMTP_PASSWORD', 'tua_password');
define('SMTP_FROM', 'tuo@email.com');
define('SMTP_FROM_NAME', 'Il Tuo Nome');
define('SMTP_SECURE', 'tls'); // Può essere 'ssl' o 'tls'
Modifica del file functions.php
del tema
Ora dobbiamo dire a WordPress di usare questi parametri per inviare email. Apri il file functions.php
del tuo tema e aggiungi il seguente codice:
function custom_smtp_settings($phpmailer) {
$phpmailer->isSMTP();
$phpmailer->Host = SMTP_HOST;
$phpmailer->SMTPAuth = true;
$phpmailer->Port = SMTP_PORT;
$phpmailer->Username = SMTP_USERNAME;
$phpmailer->Password = SMTP_PASSWORD;
$phpmailer->SMTPSecure = SMTP_SECURE;
$phpmailer->From = SMTP_FROM;
$phpmailer->FromName = SMTP_FROM_NAME;
}
add_action('phpmailer_init', 'custom_smtp_settings');
Test della configurazione
Per verificare che l’SMTP funzioni correttamente, puoi usare il seguente codice in un file temporaneo (ad esempio test-email.php
):
require_once('wp-load.php');
$to = 'destinatario@email.com';
$subject = 'Test Email SMTP';
$message = 'Questa è una mail di prova inviata tramite SMTP configurato manualmente.';
$headers = ['Content-Type: text/html; charset=UTF-8'];
if (wp_mail($to, $subject, $message, $headers)) {
echo 'Email inviata con successo!';
} else {
echo 'Errore nell\'invio dell\'email.';
}
Carica questo file nella root di WordPress ed eseguilo nel browser (https://tuodominio.com/test-email.php
). Se l’email arriva a destinazione, la configurazione è corretta!
Conclusione
Seguendo questi passaggi puoi configurare l’invio di email SMTP in WordPress senza usare plugin, migliorando sicurezza e affidabilità delle comunicazioni. Assicurati di proteggere il file wp-config.php
e di usare credenziali sicure per evitare problemi di sicurezza.