Email da WordPress
Modulo 9: Email, posizionamento (SEO), GDPR, manutenzione e migrazione · Tempo di lettura: 9 minuti
Obiettivo della lezione: Dopo questa lezione sarà in grado di far sì che le email inviate da WordPress (moduli, ordini, link per la password) arrivino in modo affidabile.
Concetti chiave: wp_mail, PHP mail(), mittente (From), Reply-To, SMTP, plugin SMTP, mailbox autenticata, servizio di email transazionali, SPF, DKIM, DMARC, allineamento, MX altrove, email di prova
WordPress invia più email di quanto pensi
Il Suo sito invia email quando: viene compilato un modulo di contatto, viene effettuato un ordine (al cliente e a Lei), viene creato un nuovo utente, viene richiesta una password dimenticata, arriva un nuovo commento, avviene un aggiornamento automatico, si verifica un errore critico (lezione 5.4). Se quell'email non arriva, spesso Lei se ne accorge solo quando un cliente telefona: "ho compilato il modulo tre volte."
Come invia email WordPress di default
WordPress invia tutto tramite la funzione wp_mail. Di default, questa passa l'email alla funzione PHP mail(), che la trasmette al programma di posta del server web. Questo funziona, ma presenta tre punti deboli:
- Il mittente. Senza configurazione, WordPress invia come
wordpress@example.com. Se quell'indirizzo non esiste, o se il mittente è diverso dal Suo dominio, i destinatari diffidano del messaggio. - SPF, DKIM e DMARC. I server di posta riceventi controllano se il server che consegna l'email è autorizzato a inviare per conto del Suo dominio (SPF), se l'email ha una firma digitale valida del Suo dominio (DKIM), e qual è la policy del Suo dominio se qualcosa non corrisponde (DMARC). Nel corso DNS (lezioni da 4.3 a 4.5) può leggere come funziona. L'email tramite il server web supera questi controlli solo se il DNS e il server sono configurati di conseguenza.
- Posta altrove. Se la Sua email non si trova presso il Suo hosting provider ma, ad esempio, presso Microsoft 365 o Google Workspace (i Suoi record MX puntano lì), l'email inviata tramite il server web spesso non corrisponde al Suo SPF e DKIM. Inoltre, alcuni server web tentano di consegnare localmente l'email destinata al Suo stesso dominio invece di seguire gli MX, per cui non arriva mai nella Sua vera mailbox.
Impostare correttamente il mittente e il Reply-To
Un errore comune nei moduli di contatto: usare come mittente (From) l'indirizzo del visitatore. Sembra logico ("così posso premere rispondi"), ma il Suo server non può inviare email per conto di @gmail.com o @hotmail.com. Questi domini hanno una policy DMARC rigorosa, quindi il destinatario rifiuta l'email o la classifica come spam.
Corretto è:
From: Website <website@example.com> (un indirizzo del Suo dominio)
Reply-To: bezoeker@example.net (l'indirizzo inserito dal visitatore)
To: info@example.comCon Reply-To la Sua risposta arriva comunque al visitatore. Praticamente ogni plugin per moduli ha questi due campi separati.
SMTP: inviare tramite una mailbox reale
La soluzione più affidabile è far inviare email a WordPress tramite SMTP: lo stesso modo in cui il Suo programma di posta invia i messaggi, con un nome utente e una password di una mailbox reale. Lo fa con un plugin SMTP (ad esempio WP Mail SMTP, FluentSMTP o Post SMTP; ne esistono altri). Il plugin intercetta wp_mail e invia l'email tramite il server che Lei indica:
| Scelta | Per chi |
|---|---|
La mailbox presso il Suo stesso hosting provider (ad esempio website@example.com sul server di posta del Suo pacchetto hosting) | La maggior parte dei piccoli siti con email presso lo stesso fornitore |
| La Sua email presso Microsoft 365 o Google Workspace | Se la Sua email si trova lì; spesso tramite un collegamento speciale nel plugin (OAuth) invece di una password, poiché questi servizi limitano sempre di più l'accesso SMTP tradizionale |
| Un servizio di email transazionali (un servizio specializzato nell'invio di email da siti web e app) | Negozi online e siti che inviano molte email |
Vantaggi: l'email passa attraverso un server già configurato con SPF e DKIM per il Suo dominio, il mittente è un indirizzo esistente, e molti plugin mantengono un registro (log), in modo che Lei possa vedere cosa è stato inviato e cosa ha avuto esito negativo.
Faccia attenzione ad alcune cose:
- Usi un indirizzo email dedicato per il sito (ad esempio
website@), non la Sua mailbox personale. Se il sito viene violato e la password trapela, quell'indirizzo può essere sostituito senza danni. - La password SMTP si trova nel database o in wp-config.php. Usi, dove possibile, una password per app o un collegamento senza password.
- Un registro email contiene dati personali (chi ha inviato cosa). Non lo lasci crescere all'infinito (lezione 9.3).
SPF, DKIM e DMARC per il Suo sito
Qualunque sia il server che invia, il Suo DNS deve corrispondere:
- SPF: il record SPF del Suo dominio deve menzionare il server che consegna l'email. Se invia tramite il server di posta del Suo hosting provider, di solito è già presente. Se invia tramite un servizio transazionale, aggiunga il loro
include:, nello stesso record SPF (mai un secondo record SPF, corso DNS lezione 4.3). - DKIM: il server che invia deve firmare l'email con una chiave presente nel Suo DNS (
<selector>._domainkey.example.com). Presso il Suo hosting provider e presso i servizi transazionali attiva questa funzione; il servizio Le fornisce i record. - DMARC: un record su
_dmarc.example.com. Inizi conp=nonee renda la policy più severa quando tutto funziona correttamente (corso DNS lezione 4.5).
Per DMARC, il dominio nel From deve essere allineato con il dominio che supera SPF o DKIM. Per questo "From sul proprio dominio" è così importante.
Testare
- Molti plugin SMTP hanno un pulsante Inviare email di prova. Ne invii una a un indirizzo presso un altro fornitore (un indirizzo Gmail o Outlook.com) e verifichi se arriva nella posta in arrivo.
- In quell'email, consulti le intestazioni ("Mostra originale" o "Visualizza origine"). Cerchi
spf=pass,dkim=passedmarc=pass. - Compili il Suo stesso modulo di contatto e verifichi se l'email arriva, con il Reply-To corretto.
- Testi anche un link per la password e, se ha un negozio, un ordine di prova.
Strumenti online come mail-tester.com forniscono un punteggio e una spiegazione; con il controllo email del Suo hosting provider (presso WebOké si chiama così) o internet.nl verifica il lato DNS.
Nella pratica: come appare in un pannello
Come esempio usiamo DirectAdmin e un plugin SMTP. Presso altri hosting provider e plugin i campi si chiamano in modo simile.
- Crei in DirectAdmin, in Accounts e-mail, una mailbox
website@example.comcon una password forte. - Cerchi presso il Suo hosting provider le impostazioni per la posta in uscita (nome del server, porta 465 o 587, crittografia).
- Le inserisca nel plugin SMTP, con
website@example.comcome mittente. Attivi "forza mittente", in modo che anche altri plugin usino questo indirizzo. - Verifichi presso la gestione DNS che SPF, DKIM e DMARC esistano per il Suo dominio.
- Invii un'email di prova e legga le intestazioni.
Riepilogo
- WordPress invia tramite wp_mail e, di default, tramite PHP mail(); il mittente e il DNS determinano se l'email arriva.
- Imposti il mittente (From) su un indirizzo del Suo stesso dominio e l'indirizzo del visitatore in Reply-To.
- Un plugin SMTP con una mailbox dedicata o un servizio transazionale è la soluzione più affidabile, con un registro.
- SPF deve menzionare il server che invia (in un unico record), DKIM deve essere attivo, DMARC deve iniziare con p=none.
- Testi con un indirizzo presso un altro fornitore e legga spf, dkim e dmarc nelle intestazioni.
Quiz
Esercizio
Esercizio A9.1: Il Suo dominio è pronto per inviare email dal sito? Inserisca il Suo dominio, l'indirizzo che il Suo sito usa come mittente, e il server tramite cui il Suo sito invia email (il nome del server SMTP, oppure "webserver" se non ha configurato nulla). Inserisca anche il selettore DKIM se lo conosce. Il programma verifica: l'indirizzo del mittente appartiene al Suo dominio, esiste esattamente un record SPF e consente il server indicato, esiste un record DKIM presso il selettore (oppure segnala che senza selettore non può verificare), ed esiste un record DMARC valido.
Esercizio D9.1: Leggere un'email di prova. Invii un'email di prova dal Suo sito (il pulsante di prova del Suo plugin SMTP, oppure un link per la password a un account di prova) a un indirizzo presso un altro fornitore. Apra le intestazioni di quell'email e annoti gli esiti per spf, dkim e dmarc, e quale dominio compare per ciascuno. Successivamente compili il Suo stesso modulo di contatto e verifichi: l'email arriva, e "rispondi" va all'indirizzo che ha inserito nel modulo?
Esercizio D9.1: Leggere un'email di prova
Questo esercizio lo svolge da sé; nessuno lo verifica. Spunti ciò che ha fatto e segni l'esercizio come completato.
Tre risultati (pass, fail o none) con un dominio, ad esempio "spf=pass smtp.mailfrom=esempio.it". In caso di fail, indichi il passo successivo (completare SPF, attivare DKIM, plugin SMTP).
Le Sue spunte e note restano solo in questo browser; non le inviamo da nessuna parte. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che ha svolto l'esercizio.
Per saperne di più
Questi articoli descrivono i passaggi nei pannelli di WebOké; in altri pannelli funzionano in modo simile.
- L'invio di e-mail tramite PHP non funziona, i record MX puntano altrove
- Come ottengo il mittente corretto in PHP con mail()? SMTP
- Un modulo di contatto sul Suo sito web: come inviare i campi via email e prevenire lo spam
- Come funziona l'invio delle e-mail / SMTP
- Guida DirectAdmin 18.10: Non riesco a inviare e-mail
- Corso gratuito DNS 4.3: SPF: chi può inviare email a nome del Suo dominio?
- Corso gratuito DNS 4.4: DKIM: la firma sotto la Sua posta
- Corso gratuito DNS 4.5: DMARC: cosa devono fare i destinatari con le email false
