Amazon SES: guida completa alla configurazione DNS e autenticazione email
Di CaptainDNS
Pubblicato il 20 gennaio 2026
Aggiornato il 29 settembre 2026

- Amazon SES offre l'invio email a 0,10 $ ogni 1.000 email con la tariffa a consumo, con 7 regioni in Europa.
- Easy DKIM genera 3 CNAME che servono sia per la verifica del dominio che per la firma DKIM (rotazione automatica gestita da AWS).
- Custom MAIL FROM è indispensabile per l'allineamento SPF DMARC, senza di esso SPF autentica con
amazonses.com. - Per
p=reject, combinate Easy DKIM + Custom MAIL FROM + allineamento relaxed (adkim=r,aspf=r). - Se i bounce salgono mentre SPF e DKIM passano, guardate la reputazione per sorgente: i tenant SES isolano ogni cliente o applicazione, senza proteggere l'account.
Perché Amazon SES merita la vostra attenzione?
Amazon SES elabora oltre mille miliardi di email all'anno dal suo lancio nel 2011. Con una tariffazione di 0,10 $ ogni 1.000 email a consumo (esclusi i piani Essentials, Pro ed Enterprise), è una delle opzioni più economiche per l'invio transazionale e marketing.
Cosa fa la differenza:
- API v2 (settembre 2019): messaggi fino a 40 MB, gestione nativa delle disiscrizioni, header personalizzati senza passare da Raw email
- 7 regioni in Europa: Francoforte, Irlanda, Londra, Parigi, Stoccolma, Milano, Zurigo
- Virtual Deliverability Manager: dashboard di reputazione e raccomandazioni automatizzate
Questa guida si concentra sulla configurazione DNS e l'autenticazione. L'obiettivo: una deliverability ottimale compatibile con p=reject.
Architettura di invio SES e flusso di autenticazione

Quando inviate tramite SES:
- La vostra applicazione chiama l'API v2 o utilizza SMTP
- SES firma il messaggio con la vostra chiave DKIM (dominio
d=captaindns.com) - Il server destinatario verifica SPF (IP di invio), DKIM (firma), poi DMARC (allineamento)
Configurazione DNS completa
Easy DKIM: il metodo consigliato
Easy DKIM genera 3 record CNAME che svolgono due funzioni:
- Verifica della proprietà del dominio (non serve TXT
_amazonses) - Firma DKIM con rotazione automatica delle chiavi, gestita da AWS
{token1}._domainkey.captaindns.com CNAME {token1}.dkim.amazonses.com
{token2}._domainkey.captaindns.com CNAME {token2}.dkim.amazonses.com
{token3}._domainkey.captaindns.com CNAME {token3}.dkim.amazonses.com
A Milano e Zurigo la destinazione include la regione: {token}.dkim.eu-south-1.amazonses.com e {token}.dkim.eu-central-2.amazonses.com.
Dimensione chiave: RSA 2048-bit di default (consigliato).
Custom MAIL FROM: l'elemento critico per DMARC
Senza Custom MAIL FROM, la busta SMTP utilizza amazonses.com come dominio MAIL FROM. Risultato: SPF autentica con amazonses.com, non il vostro dominio, l'allineamento SPF DMARC fallisce.
Record richiesti (esempio per mail.captaindns.com):
| Tipo | Nome | Valore | Priorità |
|---|---|---|---|
| MX | mail.captaindns.com | feedback-smtp.eu-west-1.amazonses.com | 10 |
| TXT | mail.captaindns.com | "v=spf1 include:amazonses.com ~all" | - |
Vincoli:
- Il Custom MAIL FROM deve essere un sottodominio del dominio verificato
- Un solo record MX (più di uno = fallimento)
- Questo sottodominio non deve ricevere altre email
SPF sul dominio root: opzionale ma consigliato
Se usate Easy DKIM + Custom MAIL FROM, SPF sul dominio root non è richiesto per DMARC (DKIM è sufficiente). Serve soprattutto agli altri servizi che inviano con il vostro dominio root:
captaindns.com TXT "v=spf1 include:amazonses.com ~all"
Allineamento DMARC: configurazione per p=reject

Cosa funziona (e cosa no)
Allineamento DKIM (metodo principale):
| Configurazione | Allineato? | DMARC via DKIM? |
|---|---|---|
| Solo email verificata (nessun dominio DKIM) | No | No |
| Dominio con Easy DKIM attivo | Sì | Sì |
| Dominio con BYODKIM | Sì | Sì |
Allineamento SPF:
| Configurazione | Allineato? | DMARC via SPF? |
|---|---|---|
MAIL FROM di default (amazonses.com) | No | No |
| Custom MAIL FROM + aspf=r (relaxed) | Sì | Sì |
| Custom MAIL FROM + aspf=s (strict) | No | No (sottodominio non allineato) |
Record DMARC consigliato
_dmarc.captaindns.com TXT "v=DMARC1;p=reject;adkim=r;aspf=r;rua=mailto:dmarc@captaindns.com"
Punti chiave:
adkim=reaspf=r: allineamento relaxed (autorizza i sottodomini)- Progredite da
p=none→p=quarantine→p=reject - Monitorate i report
ruaprima di inasprire
Tabella riepilogativa DNS
| Tipo | Host/Nome | Valore | Obbligatorio |
|---|---|---|---|
| CNAME | {token1}._domainkey.captaindns.com | {token1}.dkim.amazonses.com | Sì (Easy DKIM) |
| CNAME | {token2}._domainkey.captaindns.com | {token2}.dkim.amazonses.com | Sì (Easy DKIM) |
| CNAME | {token3}._domainkey.captaindns.com | {token3}.dkim.amazonses.com | Sì (Easy DKIM) |
| MX | mail.captaindns.com | feedback-smtp.{region}.amazonses.com | Sì (Custom MAIL FROM) |
| TXT | mail.captaindns.com | "v=spf1 include:amazonses.com ~all" | Sì (Custom MAIL FROM) |
| TXT | _dmarc.captaindns.com | "v=DMARC1;p=reject;adkim=r;aspf=r;..." | Consigliato |
| CNAME | track.captaindns.com | r.{region}.awstrack.me | Opzionale (tracking) |
A Milano e Zurigo la destinazione DKIM è {token}.dkim.<regione>.amazonses.com.
Metodi di invio: API v2 vs SMTP
API v2 (consigliata)
Endpoint: https://email.{region}.amazonaws.com
aws sesv2 send-email \
--from-email-address "sender@captaindns.com" \
--destination '{"ToAddresses":["recipient@captaindns.com"]}' \
--content '{
"Simple": {
"Subject": {"Data": "Test"},
"Body": {"Html": {"Data": "<h1>Hello</h1>"}}
}
}' \
--configuration-set-name "my-config-set"
Vantaggi v2:
- Messaggi fino a 40 MB (vs 10 MB in v1)
- Header personalizzati nativi (List-Unsubscribe senza Raw email)
ListManagementOptionsper la gestione delle liste
Interfaccia SMTP
Endpoint: email-smtp.{region}.amazonaws.com
| Porta | Protocollo | Raccomandazione |
|---|---|---|
| 25 | STARTTLS | Limitata di default su EC2 |
| 465 | TLS implicito | Alternativa |
| 2465 | TLS implicito | Alternativa alla 465 |
| 587 | STARTTLS | Consigliata |
| 2587 | STARTTLS | Alternativa alla 587 |
Header X-SES-* disponibili:
X-SES-CONFIGURATION-SET: associare un configuration setX-SES-MESSAGE-TAGS: aggiungere tag (key=value)X-SES-TENANT: associare l'invio a un tenant (insieme aX-SES-CONFIGURATION-SET)
Quote e limiti da conoscere
| Quota | Sandbox | Produzione |
|---|---|---|
| Email/24h | 200 | Variabile in base al caso d'uso |
| Tasso di invio | 1/sec | Variabile in base al caso d'uso |
| Destinatari/messaggio | 50 | 50 |
| Dimensione messaggio (API v2) | 40 MB | 40 MB |
Uscire dalla sandbox: tramite la console SES o AWS CLI, attesa ~24h se la richiesta è completa.
Soglie di reputazione: i numeri critici

| Metrica | Revisione dell'account | Pausa possibile |
|---|---|---|
| Bounce Rate | 5% | 10% |
| Complaint Rate | 0.1% | 0.5% |
AWS raccomanda di restare sotto il 2% di bounce.
Best practice:
- Verificare che la account-level suppression list sia attiva (lo è di default per gli account creati dalla fine del 2019): copre hard bounce e reclami
- Con i tenant, limitare l'elenco di soppressione a ciascun tenant (
SuppressionScope=TENANT): un hard bounce finisce allora nell'elenco del tenant e nell'elenco globale gestito da AWS, non in quello dell'account (tenant: vedere sotto) - Configurare allarmi CloudWatch su
Reputation.BounceRateeReputation.ComplaintRate - Soft bounce: SES riprova fino a 14h di default, durata regolabile da 5 min a 14h nel configuration set (
MaxDeliverySeconds)
Tenant SES: isolare la reputazione per cliente o applicazione
Un calo della deliverability non dipende per forza dal DNS. SPF e DKIM possono passare mentre i bounce e i reclami di un cliente, di una business unit o di un'applicazione danneggiano la reputazione.
Un tenant è un contenitore logico all'interno del vostro account SES. Gli si associano identità, configuration set e template. Ha metriche di reputazione proprie: bounce, reclami (compresi i feedback loop dei provider) e segnali di terze parti.
Per inviare a nome di un tenant, passate il parametro TenantName nell'API v2. In SMTP, aggiungete l'header X-SES-TENANT insieme a X-SES-CONFIGURATION-SET. Le risorse utilizzate devono essere associate al tenant, altrimenti l'invio fallisce.
| Policy di reputazione | Comportamento | Soglie pubblicate da AWS |
|---|---|---|
| Standard (predefinita, consigliata) | Messo in pausa quando SES rileva un problema di gravità alta | Bounce > 15% o reclami > 1% |
| Strict | Messo in pausa per qualsiasi problema, anche di gravità bassa | Bounce > 10% o reclami > 0,5% |
| None | Nessuna pausa dovuta alla policy, i problemi vengono comunque registrati. SES può mettere comunque in pausa il tenant in caso di problema grave | - |
Un tenant in pausa non può più inviare, gli altri tenant continuano. La riattivazione è manuale, tramite l'API UpdateReputationEntityCustomerManagedStatus. Una pausa decisa dal team Trust & Safety di AWS richiede l'apertura di un caso al Support. SES pubblica in EventBridge i problemi rilevati e i cambi di stato.
L'isolamento limita l'impatto di una sorgente, ma l'attività cumulata dei tenant pesa sempre sulla reputazione dell'account, le cui soglie restano valide.
I tenant non sostituiscono né SPF, né DKIM, né DMARC, né il Custom MAIL FROM.
Un tenant è regionale e non viene replicato: se inviate da più regioni in Europa, createlo in ciascuna. Nessun annidamento, 10.000 tenant di default (fino a 300.000 su richiesta). I tenant sono fatturati a parte, per tenant e per mese: vedere la pagina delle tariffe SES.
Tariffe a consumo
| Componente | Prezzo |
|---|---|
| Email inviate | 0,10 $ / 1.000 |
| Dati in uscita (allegati) | 0,12 $ / GB |
| IP dedicato standard | 24,95 $ / mese / IP |
| Managed Dedicated IPs | 15 $ / mese + da 0,08 $ a 0,02 $ / 1.000, decrescente in base al volume |
| Virtual Deliverability Manager | 0,07 $ / 1.000 email |
Piani SES: dal 21 luglio 2026 i nuovi account (e le regioni di un account esistente senza attività SES fatturata dal 1° giugno 2025) partono dal piano Essentials, a 0,16 $ / 1.000 email fino a 10 milioni al mese, senza costi fissi. Il passaggio alla tariffa a consumo indicata sopra resta possibile in qualsiasi momento.
Nuovi account AWS: fino a 200 $ di crediti Free Tier, utilizzabili anche su SES.
Piano d'azione: configurazione in 6 passaggi
- Creare un'identità dominio nella console SES (regione europea a scelta)
- Configurare Easy DKIM: pubblicare i 3 CNAME forniti da SES
- Attendere la verifica: fino a 72h per la propagazione DNS
- Configurare Custom MAIL FROM: creare il sottodominio con MX e TXT SPF
- Pubblicare il record DMARC: iniziare con
p=none, monitorare i report - Uscire dalla sandbox: inviare la richiesta di accesso alla produzione
Guide tecniche: altre piattaforme email transazionali
Scopri le nostre guide complete per altre soluzioni email transazionali:
- Postmark: configurazione DKIM e REST API - Specialista in deliverability, DKIM 1024 bit, Message Streams
- SendGrid: autenticazione dominio e Web API v3 - DKIM 2048 bit con rotazione, IP dedicato da 50k/mese
- Mailgun: DKIM con rotazione automatica - Return-Path nativo, rotazione DKIM 120 giorni
- Mailjet: API v3.1 e configurazione DKIM - DKIM 2048/4096 bit, acquisizione Sinch
- Mandrill: integrazione Mailchimp transazionale - Requisito Mailchimp Standard, blocchi da 25k email
- Brevo: configurazione DKIM e SPF - 300 email/giorno gratis, DKIM TXT o CNAME
FAQ
È obbligatorio configurare Custom MAIL FROM?
Per l'allineamento SPF DMARC, sì. Senza Custom MAIL FROM, SPF autentica con amazonses.com, il che rompe l'allineamento. Se contate esclusivamente su DKIM per DMARC (il che funziona), Custom MAIL FROM rimane comunque consigliato per la difesa in profondità.
Quale regione europea scegliere per il GDPR?
SES offre 7 regioni in Europa (Francoforte, Irlanda, Londra, Parigi, Stoccolma, Milano, Zurigo), di cui Londra e Zurigo fuori dall'UE. Scegliete in base alla latenza e alla disponibilità SMTP (Milano e Zurigo non hanno endpoint SMTP).
I 3 CNAME Easy DKIM sono tutti attivi contemporaneamente?
AWS non documenta il ruolo di ciascun CNAME. Pubblicateli tutti e tre: SES gestisce le chiavi e la loro rotazione senza alcun intervento DNS da parte vostra.
Come testare la configurazione prima di inviare in produzione?
In sandbox, inviate verso indirizzi verificati. Usate aws sesv2 send-email con un configuration set configurato per pubblicare gli eventi verso SNS o CloudWatch. Verificate gli header DKIM e SPF ricevuti.
Il mio bounce rate sale mentre SPF e DKIM passano: è un problema DNS?
Non per forza. SPF e DKIM autenticano il mittente, non dicono nulla sulla qualità della lista. I bounce e i reclami di una sorgente (un cliente, una business unit, un'applicazione) pesano sulla reputazione. Individuate prima la sorgente che genera i bounce. Se più clienti o applicazioni condividono l'account, isolateli in tenant SES per limitare l'impatto dell'uno sugli altri. Le soglie dell'account restano valide.
Glossario
-
Easy DKIM: metodo SES che genera e gestisce automaticamente le chiavi DKIM tramite 3 record CNAME, con rotazione automatica.
-
Custom MAIL FROM: sottodominio configurato per sostituire il dominio MAIL FROM di default (
amazonses.com), richiesto per l'allineamento SPF DMARC. -
BYODKIM: Bring Your Own DKIM - opzione per utilizzare le proprie chiavi DKIM invece di quelle generate da SES (1 solo record TXT).
-
Configuration Set: insieme di regole SES per il tracking, le notifiche di eventi e le policy TLS.
-
Tenant: contenitore logico all'interno di un account SES, con una reputazione propria, a cui si associano identità, configuration set e template.
-
Sandbox: modalità iniziale degli account SES che limita l'invio a 200 email/giorno verso indirizzi verificati.
-
Virtual Deliverability Manager (VDM): funzionalità a pagamento SES che offre una dashboard di metriche e raccomandazioni automatizzate sulla deliverability.
Fonti ufficiali
- Amazon SES Developer Guide
- SES Pricing
- SES Quotas
- Tenant SES: isolamento della reputazione (documentazione AWS)
- Elenco di soppressione a livello di tenant (documentazione AWS)
- Annuncio AWS di agosto 2025: isolamento per tenant e policy di reputazione automatizzate
- Blog AWS: implementare i tenant in Amazon SES, parte 3 (soglie delle policy)


