Amazon SES: guida completa alla configurazione DNS e autenticazione email

Di CaptainDNS
Pubblicato il 20 gennaio 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$/1000 email con 7 regioni EU per la conformità GDPR.
  • Easy DKIM genera 3 CNAME che servono sia per la verifica del dominio che per la firma DKIM (rotazione automatica ogni 90 giorni).
  • 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).

Perché Amazon SES merita la vostra attenzione?

Amazon SES elabora oltre un trilione di email all'anno dal suo lancio nel 2011. Con una tariffazione di 0.10$ per 1.000 email (senza scaglioni di volume), è l'opzione più economica per l'invio transazionale e marketing.

Cosa fa la differenza:

  • API v2 (settembre 2019): messaggi fino a 40 MB, gestione nativa degli unsubscribe, header custom senza passare da Raw email
  • 7 regioni EU: Francoforte, Irlanda, Londra, Parigi, Stoccolma, Milano, Zurigo - DPA GDPR incluso automaticamente
  • 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 ogni 90 giorni
{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

Dimensione chiave: RSA 2048-bit di default (consigliato). La rotazione gestisce automaticamente i ruoli active/passive/pending tra i 3 CNAME.

Custom MAIL FROM: l'elemento critico per DMARC

Senza Custom MAIL FROM, l'envelope 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):

TipoNameValuePriority
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). AWS consiglia comunque di configurarlo:

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 attivo
Dominio con BYODKIM

Allineamento SPF:

ConfigurazioneAllineato?DMARC via SPF?
MAIL FROM di default (amazonses.com)NoNo
Custom MAIL FROM + aspf=r (relaxed)
Custom MAIL FROM + aspf=s (strict)NoNo (mismatch sottodominio)

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=nonep=quarantinep=reject
  • Monitorate i report rua prima di inasprire

Tabella riepilogativa DNS

TipoHost/NameValueObbligatorio
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)

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 custom nativi (List-Unsubscribe senza Raw email)
  • ListManagementOptions per la gestione delle liste

Interfaccia SMTP

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

PortaProtocolloRaccomandazione
25STARTTLSSpesso bloccata dagli ISP
465TLS implicitoAlternativa
587STARTTLSConsigliata
2587STARTTLSAlternativa alla 587

Header X-SES-* disponibili:

  • X-SES-CONFIGURATION-SET: associare un configuration set
  • X-SES-MESSAGE-TAGS: aggiungere tag (key=value)

Quote e limiti da conoscere

QuotaSandboxProduzione
Email/24h200~50.000-100.000 (iniziale)
Tasso di invio1/sec~14-50/sec (iniziale)
Destinatari/messaggio5050
Dimensione messaggio (API v2)40 MB40 MB

Uscire dalla sandbox: tramite 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

MetricaWarningMassimoAzione
Bounce Rate5%10%Account review
Complaint Rate0.1%0.2%Account review

Best practice:

  • Attivare la account-level suppression list (sopprime automaticamente gli hard bounce)
  • Configurare alert CloudWatch su Reputation.BounceRate e Reputation.ComplaintRate
  • Soft bounce: SES riprova automaticamente per 12h

Tariffe 2025

ComponentePrezzo
Email inviate$0.10 / 1.000
Dati in uscita (allegati)$0.12 / GB (primo GB gratuito)
IP dedicato standard$24.95 / mese / IP
Managed Dedicated IPs$15/mese + $0.08-0.02/1000 in base al volume
Virtual Deliverability Manager$0.07 / 1.000 email

Free tier (nuovi account): 3.000 email/mese per 12 mesi.

Piano d'azione: configurazione in 6 passaggi

  1. Creare un'identità dominio nella console SES (regione EU 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 production access

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 EU scegliere per il GDPR?

Le 7 regioni EU (Francoforte, Irlanda, Londra, Parigi, Stoccolma, Milano, Zurigo) sono tutte conformi al GDPR con DPA incluso automaticamente. 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?

No. Un solo CNAME è attivo (risolve con una chiave pubblica p=...) in un dato momento. Gli altri due sono in rotazione (passive/pending). SES gestisce automaticamente la rotazione ogni ~90 giorni.

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.

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.

  • 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