Un sito invia più email di quanto sembri: l'avviso di un modulo di contatto, la conferma di un ordine, il link per recuperare la password. Per impostazione predefinita è il server stesso a inviarle, "alla buona", e i grandi provider di posta diffidano di un server qualsiasi: molte finiscono nello spam o vengono direttamente rifiutate. La soluzione abituale è che il sito consegni le sue email a un servizio specializzato, e Amazon SES è uno dei più economici e affidabili.
La maggior parte delle applicazioni, WordPress incluso, sa inviare via SMTP, il protocollo classico della posta. SES offre esattamente questo: un server SMTP con un utente e una password. Questa guida li crea e li mette nel sito.
Prima di iniziare: cosa significa ogni cosa
- SES
- Simple Email Service, il servizio di Amazon perché le applicazioni inviino email.
- SMTP
- Il protocollo con cui i programmi inviano email a un server di posta. Quasi ogni applicazione lo supporta: servono solo l'indirizzo del server, la porta, un utente e una password.
- Credenziali SMTP
- L'utente e la password che SES ti dà per inviare via SMTP. Non sono il tuo utente AWS: SES ne crea di specifici.
- Identità verificata
- Un dominio o un indirizzo email che hai dimostrato ad Amazon essere tuo. Si può inviare solo "da" un'identità verificata.
- Sandbox
- La modalità di prova con cui inizia ogni account SES: permette di inviare solo a indirizzi verificati. Per un sito reale bisogna chiedere l'uscita (guida in questa sezione).
- Porta 587 e TLS
- La porta è la "porta" del server attraverso cui si invia; la 587 è quella standard per l'invio autenticato. TLS (o STARTTLS) è la cifratura della connessione.
- Regione
- Il luogo del mondo dove si trova il tuo SES. L'indirizzo del server SMTP include la regione.
Passo dopo passo
Controlla che il mittente sia verificato
Nella console di SES, scegli la regione che userai (per esempio Irlanda,
eu-west-1) ed entra in Identità. Deve risultare verificato il dominio da cui invia il sito (midominio.com) o, almeno, l'indirizzo esatto (web@midominio.com). Se non c'è nulla, verifica il dominio seguendo la guida su DKIM, SPF e DMARC di questa sezione: senza, SES non lascerà inviare e le email finirebbero comunque nello spam.Crea le credenziali SMTP
Nel menu di SES, Impostazioni SMTP. Annota l'indirizzo del server, che ha la forma
email-smtp.eu-west-1.amazonaws.com, e la porta 587. Premi Crea credenziali SMTP: ti porta su IAM con un nome utente proposto (qualcosa comeses-smtp-user); puoi cambiarlo insmtp-web-empresaper sapere a cosa serve. Crea l'utente e, nell'ultima schermata, scarica o copia l'utente e la password SMTP. La password si mostra solo questa volta. Conservala in un gestore di password.Configura WordPress
Installa un plugin di invio via SMTP (ce ne sono diversi molto usati; cerca "SMTP" nell'installatore dei plugin). Nella sua configurazione scegli "Altro SMTP" o "Amazon SES via SMTP" e compila: server
email-smtp.eu-west-1.amazonaws.com, porta587, cifratura TLS, autenticazione attiva, utente e password SMTP del passo 2. Indirizzo e nome del mittente: un indirizzo del tuo dominio verificato (web@midominio.com) e il nome della tua azienda. Salva.Oppure configura qualsiasi altra applicazione
Gli stessi cinque dati servono per qualsiasi programma che invii email: server, porta 587, TLS, utente e password. In un'applicazione propria di solito vanno in un file di configurazione o in variabili d'ambiente; non scriverli nel codice. Se l'applicazione lo permette, aggiungi anche un'intestazione o un'etichetta che identifichi da quale sito provengono le email: ti aiuterà quando ne avrai diversi.
Invia una prova
I plugin SMTP hanno un pulsante "invia email di prova". Mandala a un tuo account. Se sei ancora nella sandbox di SES, quell'account deve essere un indirizzo verificato in SES; altrimenti SES rifiuterà l'invio con un messaggio chiaro. Apri l'email ricevuta e controlla che il mittente sia il tuo e che non sia finita nello spam.
Chiedi di uscire dalla sandbox e sorveglia gli invii
Perché il sito possa scrivere a qualsiasi indirizzo, chiedi ad AWS l'uscita dalla sandbox (guida in questa sezione). Dopo, in SES, Pannello dell'account, vedrai quante email partono ogni giorno e quale percentuale rimbalza o viene segnalata come spam. Guarda quella schermata ogni tanto: è la salute della posta del tuo sito.
Cosa può andare storto
L'email di prova fallisce con "Email address is not verified"
O il mittente non è un'identità verificata in quella regione, oppure sei nella sandbox e il destinatario non lo è neanche lui. Controlla la regione del server SMTP e quella dell'identità: devono coincidere.
Fallisce con "authentication credentials invalid"
Le credenziali SMTP non sono le normali chiavi di accesso di IAM, anche se si assomigliano: bisogna usare esattamente la password SMTP che SES ha generato. Se l'hai persa, creane di nuove e cancella l'utente vecchio.
Viene inviata, ma arriva nello spam
Manca l'autenticazione del dominio (DKIM, SPF, DMARC) oppure il contenuto sembra spam. Segui la guida di verifica del dominio; poi controlla che il mittente sia del tuo dominio e non uno gratuito.
Il server non riesce a connettersi sulla porta 587
Alcuni hosting bloccano le porte di posta in uscita. Prova la 2587 (SES la accetta anche con TLS) o chiedi al tuo provider di aprirla. Sulle macchine Lightsail ed EC2 nuove, AWS limita la porta 25, ma la 587 funziona.
In Simplio
In Simplio la schermata Email (SES) ti mostra le tue identità per regione e ti dice se il dominio è verificato e quali record DNS mancano; con un pulsante genera delle credenziali SMTP con permessi di solo invio e ti mostra i cinque dati da incollare in WordPress o nella tua applicazione. Poi vedi invii, rimbalzi e reclami di tutti i tuoi account nello stesso posto, con avviso via email se la percentuale di rimbalzi sale.
La stessa cosa, in AWS e in Simplio
| Nella console di AWS | In Simplio | |
|---|---|---|
| Creare le credenziali e configurarle | SES, IAM, il plugin del sito: 3 strumenti, 6 passi, circa 20 minuti | Pulsante "Credenziali SMTP" nella schermata Email: ti dà i 5 dati pronti da incollare, 1 minuto |
| Sapere se la posta del sito parte bene | Entrare in SES, regione per regione | Inviati, rimbalzi e reclami di tutti i tuoi account in una schermata, con avviso se schizzano |
| Più siti e più account | Ripetere tutto in ciascuno | Lo stesso, nella stessa lista |