Vai al contenuto principale

Amazon SES: guida completa alla configurazione DNS e autenticazione email

Di CaptainDNS
Pubblicato il 20 gennaio 2026

Aggiornato il 29 settembre 2026

Schema del flusso di invio email Amazon SES con autenticazione DKIM, SPF e DMARC
TL;DR
  • 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

Flusso di autenticazione email Amazon SES con DKIM, SPF e DMARC

Quando inviate tramite SES:

  1. La vostra applicazione chiama l'API v2 o utilizza SMTP
  2. SES firma il messaggio con la vostra chiave DKIM (dominio d=captaindns.com)
  3. 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):

TipoNomeValorePriorità
MXmail.captaindns.comfeedback-smtp.eu-west-1.amazonses.com10
TXTmail.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

Matrice di allineamento DMARC con Amazon SES

Cosa funziona (e cosa no)

Allineamento DKIM (metodo principale):

ConfigurazioneAllineato?DMARC via DKIM?
Solo email verificata (nessun dominio DKIM)NoNo
Dominio con Easy DKIM attivoSìSì
Dominio con BYODKIMSìSì

Allineamento SPF:

ConfigurazioneAllineato?DMARC via SPF?
MAIL FROM di default (amazonses.com)NoNo
Custom MAIL FROM + aspf=r (relaxed)SìSì
Custom MAIL FROM + aspf=s (strict)NoNo (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=r e aspf=r: allineamento relaxed (autorizza i sottodomini)
  • Progredite da p=none → p=quarantine → p=reject
  • Monitorate i report rua prima di inasprire

Tabella riepilogativa DNS

TipoHost/NomeValoreObbligatorio
CNAME{token1}._domainkey.captaindns.com{token1}.dkim.amazonses.comSì (Easy DKIM)
CNAME{token2}._domainkey.captaindns.com{token2}.dkim.amazonses.comSì (Easy DKIM)
CNAME{token3}._domainkey.captaindns.com{token3}.dkim.amazonses.comSì (Easy DKIM)
MXmail.captaindns.comfeedback-smtp.{region}.amazonses.comSì (Custom MAIL FROM)
TXTmail.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
CNAMEtrack.captaindns.comr.{region}.awstrack.meOpzionale (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)
  • ListManagementOptions per la gestione delle liste

Interfaccia SMTP

Endpoint: email-smtp.{region}.amazonaws.com

PortaProtocolloRaccomandazione
25STARTTLSLimitata di default su EC2
465TLS implicitoAlternativa
2465TLS implicitoAlternativa alla 465
587STARTTLSConsigliata
2587STARTTLSAlternativa alla 587

Header X-SES-* disponibili:

  • X-SES-CONFIGURATION-SET: associare un configuration set
  • X-SES-MESSAGE-TAGS: aggiungere tag (key=value)
  • X-SES-TENANT: associare l'invio a un tenant (insieme a X-SES-CONFIGURATION-SET)

Quote e limiti da conoscere

QuotaSandboxProduzione
Email/24h200Variabile in base al caso d'uso
Tasso di invio1/secVariabile in base al caso d'uso
Destinatari/messaggio5050
Dimensione messaggio (API v2)40 MB40 MB

Uscire dalla sandbox: tramite la console SES o AWS CLI, attesa ~24h se la richiesta è completa.

Soglie di reputazione: i numeri critici

Dashboard di reputazione Amazon SES con soglie di allarme

MetricaRevisione dell'accountPausa possibile
Bounce Rate5%10%
Complaint Rate0.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.BounceRate e Reputation.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 reputazioneComportamentoSoglie pubblicate da AWS
Standard (predefinita, consigliata)Messo in pausa quando SES rileva un problema di gravità altaBounce > 15% o reclami > 1%
StrictMesso in pausa per qualsiasi problema, anche di gravità bassaBounce > 10% o reclami > 0,5%
NoneNessuna 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

ComponentePrezzo
Email inviate0,10 $ / 1.000
Dati in uscita (allegati)0,12 $ / GB
IP dedicato standard24,95 $ / mese / IP
Managed Dedicated IPs15 $ / mese + da 0,08 $ a 0,02 $ / 1.000, decrescente in base al volume
Virtual Deliverability Manager0,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

  1. Creare un'identità dominio nella console SES (regione europea a scelta)
  2. Configurare Easy DKIM: pubblicare i 3 CNAME forniti da SES
  3. Attendere la verifica: fino a 72h per la propagazione DNS
  4. Configurare Custom MAIL FROM: creare il sottodominio con MX e TXT SPF
  5. Pubblicare il record DMARC: iniziare con p=none, monitorare i report
  6. 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:

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

Articoli simili