Vai al contenuto
Docs

Tutorial

Invia le email di WordPress con Emailit

Instrada le email di WordPress, WooCommerce e dei moduli di contatto tramite l’SMTP di Emailit con WP Mail SMTP o un piccolo plugin, usando una chiave API come password.

Aggiornato il 1 ott 2026

WordPress invia i reset delle password, gli ordini di WooCommerce e i messaggi dei moduli di contatto con wp_mail(), che per impostazione predefinita usa la configurazione di posta del server e spesso finisce nello spam. Questa guida instrada queste email tramite l’SMTP relay di Emailit, con il plugin WP Mail SMTP o con poche righe di codice.

Prerequisiti

  • Accesso da amministratore al tuo sito WordPress.
  • Un dominio di invio verificato, ad esempio acme.com. L’indirizzo From del sito deve usarlo.
  • Una chiave API. Crea una chiave Sending Only limitata al tuo dominio, con un nome come wordpress-acme, così un’impostazione del plugin finita nelle mani sbagliate non può essere usata per nient’altro.
  • Finché il workspace non ha l’accesso alla produzione, puoi inviare solo agli indirizzi email degli account dei membri del workspace. Fai i test con il tuo indirizzo.

Impostazioni SMTP

Questi sono i valori da inserire in qualsiasi plugin SMTP:

Impostazione Valore
Host SMTP smtp.emailit.com
Crittografia TLS (STARTTLS)
Porta SMTP 587
Autenticazione Attiva
Nome utente SMTP emailit
Password SMTP La tua chiave API (secret_…)
Email del mittente (From) Un indirizzo del tuo dominio verificato, ad esempio hello@acme.com

Se il tuo host blocca la porta 587, usa la 2525 o la 2587 con TLS, oppure la 465 con SSL. Vedi Impostazioni SMTP.

Configura WP Mail SMTP

WP Mail SMTP è un plugin gratuito che sostituisce il sistema di invio della posta di WordPress. Altri plugin SMTP, come FluentSMTP o Post SMTP, usano le stesse impostazioni con etichette leggermente diverse.

  1. Installa il plugin. In WordPress, vai a Plugins > Add New, cerca WP Mail SMTP, poi installalo e attivalo. Se si apre la procedura guidata di configurazione, saltala: puoi configurare tutto nella pagina delle impostazioni.

  2. Imposta il mittente. Apri le impostazioni del plugin. Imposta From Email su un indirizzo del tuo dominio verificato e attiva Force From Email, così ogni plugin invia da quell’indirizzo. Imposta From Name sul nome del sito o dell’azienda.

  3. Scegli Other SMTP. In Mailer, scegli Other SMTP.

  4. Inserisci il server. Imposta SMTP Host su smtp.emailit.com, Encryption su TLS e SMTP Port su 587. Lascia attivo Auto TLS.

  5. Inserisci le credenziali. Attiva Authentication. Imposta SMTP Username su emailit e SMTP Password sulla tua chiave API. Salva le impostazioni.

  6. Invia un test. Usa lo strumento Email Test del plugin per inviare un messaggio al tuo indirizzo. Compare in Email APIEmails in pochi secondi.

Tieni la chiave fuori dal database

WP Mail SMTP può leggere le impostazioni da costanti, così la chiave API si trova in wp-config.php invece che nel database. Aggiungi queste righe sopra /* That's all, stop editing! */:

wp-config.php
define( 'WPMS_ON', true );
define( 'WPMS_MAILER', 'smtp' );
define( 'WPMS_SMTP_HOST', 'smtp.emailit.com' );
define( 'WPMS_SMTP_PORT', 587 );
define( 'WPMS_SSL', 'tls' );
define( 'WPMS_SMTP_AUTH', true );
define( 'WPMS_SMTP_AUTOTLS', true );
define( 'WPMS_SMTP_USER', 'emailit' );
define( 'WPMS_SMTP_PASS', 'secret_••••••••••••••••••••••••••••••••' );
define( 'WPMS_MAIL_FROM', 'hello@acme.com' );
define( 'WPMS_MAIL_FROM_FORCE', true );
define( 'WPMS_MAIL_FROM_NAME', 'Acme' );

La pagina delle impostazioni mostra quindi questi valori come bloccati. Se un campo non legge la sua costante, consulta la documentazione del plugin.

Configura senza plugin

Se preferisci non installare un plugin, aggiungi un must-use plugin che configura il PHPMailer integrato di WordPress. Definisci la chiave in wp-config.php:

wp-config.php
define( 'EMAILIT_API_KEY', 'secret_••••••••••••••••••••••••••••••••' );

Poi crea questo file:

wp-content/mu-plugins/emailit-smtp.php
<?php
/**
 * Plugin Name: Emailit SMTP
 * Description: Sends all WordPress email through the Emailit SMTP relay.
 */

add_action( 'phpmailer_init', function ( $phpmailer ) {
    $phpmailer->isSMTP();
    $phpmailer->Host       = 'smtp.emailit.com';
    $phpmailer->Port       = 587;
    $phpmailer->SMTPSecure = 'tls';
    $phpmailer->SMTPAuth   = true;
    $phpmailer->Username   = 'emailit';
    $phpmailer->Password   = EMAILIT_API_KEY;
} );

add_filter( 'wp_mail_from', fn () => 'hello@acme.com' );
add_filter( 'wp_mail_from_name', fn () => 'Acme' );

I file in mu-plugins vengono caricati automaticamente e non si possono disattivare dalla schermata di amministrazione.

Ricevi i webhook

La maggior parte dei siti non ha bisogno dei webhook. Se vuoi reagire a bounce o segnalazioni, ad esempio per contrassegnare l’indirizzo di un cliente WooCommerce, registra una route REST e verifica la firma. Salva il secret di firma del webhook in wp-config.php come EMAILIT_WEBHOOK_SECRET:

wp-content/mu-plugins/emailit-webhooks.php
<?php
add_action( 'rest_api_init', function () {
    register_rest_route( 'emailit/v1', '/webhook', [
        'methods'             => 'POST',
        'permission_callback' => '__return_true',
        'callback'            => function ( WP_REST_Request $request ) {
            $payload   = $request->get_body();
            $timestamp = (string) $request->get_header( 'x-emailit-timestamp' );
            $signature = (string) $request->get_header( 'x-emailit-signature' );
            $expected  = hash_hmac( 'sha256', $timestamp . '.' . $payload, EMAILIT_WEBHOOK_SECRET );

            if ( abs( time() - (int) $timestamp ) > 300 || ! hash_equals( $expected, $signature ) ) {
                return new WP_Error( 'invalid_signature', 'Invalid signature', [ 'status' => 401 ] );
            }

            foreach ( json_decode( $payload, true ) as $event ) {
                if ( 'email.bounced' === $event['type'] ) {
                    // Flag $event['data']['object']['to'].
                }
            }

            return new WP_REST_Response( null, 200 );
        },
    ] );
} );

Indirizza il webhook a https://acme.com/wp-json/emailit/v1/webhook. È il controllo della firma a proteggere la route, quindi non rimuoverlo.

Consigli per la produzione

  • Forza l’indirizzo From. I plugin di WooCommerce, dei moduli di contatto e delle membership spesso impostano un proprio mittente. Forzare un indirizzo From del tuo dominio verificato evita gli errori 530 From/Sender domain is not verified.
  • Controlla i log quando qualcosa non funziona. Email APILogs mostra ogni accesso SMTP e ogni messaggio con il suo codice di stato, filtrati per chiave API.
  • Tieni d’occhio i limiti. Per impostazione predefinita, i nuovi workspace possono inviare 2 email al secondo e 5000 al giorno. Una grande promozione su WooCommerce o un plugin per newsletter possono raggiungerli; per chiederne di più, vedi Limiti e quote.
  • Non inviare newsletter tramite wp_mail. Per le email di marketing a una lista, usa le Campagne, che gestiscono per te i link di disiscrizione e le liste.

Risoluzione dei problemi

Sintomo Causa Soluzione
535 Authentication failed La password non è una chiave API valida. Incolla la chiave completa, compreso secret_, e usa emailit come nome utente.
530 From/Sender domain is not verified for this workspace L’indirizzo From non appartiene a un dominio verificato. Imposta e forza un’email From del tuo dominio verificato.
530 API key is restricted to sending domain La chiave è limitata a un altro dominio. Usa un indirizzo From del dominio della chiave, oppure un’altra chiave.
Timeout della connessione Il tuo host blocca la porta. Prova la porta 2525 o 2587 con TLS, oppure chiedi al tuo host di consentire l’SMTP in uscita.
550 Unverified workspaces can only send to workspace members' account emails Il workspace non ha ancora l’accesso alla produzione. Richiedi l’accesso alla produzione.

Per altre informazioni, vedi Risoluzione dei problemi SMTP.

Passaggi successivi

Porte, TLS e credenziali.
Tieni le tue email fuori dallo spam.
Cosa significa ogni stato nell’elenco Emails.
Permessi, limitazioni a un dominio e rotazione.

Questa pagina ti è stata utile?

Grazie del feedback.

Grazie, leggiamo ogni messaggio.