Aggiungere e verificare un dominio
Per inviare da hello@acme.com dimostri di possedere acme.com pubblicando dei record DNS. La verifica configura la firma DKIM (così i destinatari sanno che l’email è davvero tua) e un return path personalizzato (così SPF e DMARC risultano allineati con il tuo dominio).
-
Aggiungi il dominio
add-domain.ts import { SpacePost } from "@spacepost/node";const spacepost = new SpacePost(process.env.SPACEPOST_API_KEY);const { data: domain, error } = await spacepost.domains.create({ name: "acme.com" });if (error) throw new Error(`${error.name}: ${error.message}`);console.log(domain.id, domain.status); // "not_started" or "pending"for (const r of domain.records ?? []) {console.log(`${r.type.padEnd(5)} ${r.name} -> ${r.value}${r.priority ? ` (priority ${r.priority})` : ""}`);}Finestra del terminale curl -X POST https://api.spacepost.dev/domains \-H "Authorization: Bearer $SPACEPOST_API_KEY" \-H "Content-Type: application/json" \-d '{ "name": "acme.com" }'r = requests.post("https://api.spacepost.dev/domains",headers={"Authorization": f"Bearer {os.environ['SPACEPOST_API_KEY']}"},json={"name": "acme.com"},)for rec in r.json()["records"]:print(rec["type"], rec["name"], rec["value"])Puoi usare anche la dashboard oppure
spacepost domains add acme.com. -
Crea i record DNS
La risposta contiene un array
recordse un arrayrecommended_records(DMARC):Response (abridged) {"object": "domain","id": "0192e1c4-0000-7000-8000-000000000001","name": "acme.com","status": "not_started","region": "eu-central-1","open_tracking": false,"click_tracking": false,"records": [{ "record": "DKIM", "name": "a1b2c3d4e5f6._domainkey", "type": "CNAME", "ttl": "Auto", "status": "not_started", "value": "a1b2c3d4e5f6.dkim.amazonses.com" },{ "record": "DKIM", "name": "g7h8i9j0k1l2._domainkey", "type": "CNAME", "ttl": "Auto", "status": "not_started", "value": "g7h8i9j0k1l2.dkim.amazonses.com" },{ "record": "DKIM", "name": "m3n4o5p6q7r8._domainkey", "type": "CNAME", "ttl": "Auto", "status": "not_started", "value": "m3n4o5p6q7r8.dkim.amazonses.com" },{ "record": "SPF", "name": "send", "type": "MX", "ttl": "Auto", "status": "not_started", "value": "feedback-smtp.eu-central-1.amazonses.com", "priority": 10 },{ "record": "SPF", "name": "send", "type": "TXT", "ttl": "Auto", "status": "not_started", "value": "\"v=spf1 include:amazonses.com ~all\"" }],"recommended_records": [{ "record": "DMARC", "name": "_dmarc", "type": "TXT", "ttl": "Auto", "status": "not_started", "value": "\"v=DMARC1; p=none;\"" }]}Aggiungili presso il tuo provider DNS. Vedi i record spiegati qui sotto e le guide per provider.
-
Verifica
Le modifiche DNS possono richiedere qualche minuto (raramente ore). SpacePost ricontrolla automaticamente i domini in attesa e puoi avviare un controllo in qualsiasi momento:
verify-domain.ts import { SpacePost } from "@spacepost/node";const spacepost = new SpacePost(process.env.SPACEPOST_API_KEY);const id = "0192e1c4-0000-7000-8000-000000000001";const { error } = await spacepost.domains.verify(id); // asks SpacePost to re-check DNS nowif (error) throw new Error(error.message);const { data: domain } = await spacepost.domains.get(id);console.log(domain?.status); // "verified" once DKIM is confirmedFinestra del terminale curl -X POST https://api.spacepost.dev/domains/$DOMAIN_ID/verify -H "Authorization: Bearer $SPACEPOST_API_KEY"curl https://api.spacepost.dev/domains/$DOMAIN_ID -H "Authorization: Bearer $SPACEPOST_API_KEY"Finestra del terminale spacepost domains verify acme.comspacepost domains doctor acme.com # looks up each record live and tells you what is missing or wrong
I record spiegati
Sezione intitolata “I record spiegati”I nomi dei record nell’API sono relativi al tuo dominio (send, _dmarc, a1b2c3d4e5f6._domainkey). Alcuni provider DNS vogliono il nome completo (send.acme.com); le guide per provider indicano quali.
| Record | Tipo | Nome | Valore | Scopo |
|---|---|---|---|---|
| DKIM (x3) | CNAME | <token>._domainkey |
<token>.dkim.amazonses.com |
Pubblica le chiavi pubbliche che Amazon SES ruota per te (“Easy DKIM”). I destinatari le usano per verificare che ogni messaggio sia stato firmato dal tuo dominio e non sia stato alterato. Obbligatori: la verifica dipende da tutti e tre. |
| Return path | MX | send |
feedback-smtp.<region>.amazonses.com, priorità 10 |
Riceve le notifiche di rimbalzo e di reclamo indirizzate a send.acme.com. Insieme al record TXT qui sotto forma un dominio MAIL FROM personalizzato. |
| Return path | TXT | send |
v=spf1 include:amazonses.com ~all |
SPF per il sottodominio del return path. Poiché il mittente della busta è sul tuo dominio, SPF risulta allineato con il tuo indirizzo From, come richiede DMARC. |
| DMARC (consigliato) | TXT | _dmarc |
v=DMARC1; p=none; |
Indica ai destinatari che cosa fare con le email che non superano l’autenticazione ed è richiesto da Gmail e Yahoo ai mittenti di massa. Vedi DMARC. |
| Stato | Significato |
|---|---|
not_started |
Dominio aggiunto, DNS non ancora rilevato. |
pending |
SpacePost sta controllando il DNS. |
verified |
DKIM è confermato. Puoi inviare da questo dominio. |
temporary_failure |
Una ricerca è fallita temporaneamente. Viene ritentata automaticamente. |
failed |
Il DNS non è stato trovato entro 72 ore, oppure un record è sbagliato. Correggi i record e richiama verify. |
Il dominio è verified non appena DKIM viene superato. Se mancano solo i record del return path, le email vengono comunque inviate, ma l’allineamento SPF ripiega sul dominio di Amazon, il che indebolisce l’allineamento DMARC. Correggilo per ottenere il miglior recapito.
Ogni record in records ha un proprio status con gli stessi valori, così puoi vedere esattamente quale manca.
Inviare da sottodomini
Sezione intitolata “Inviare da sottodomini”Se acme.com è verificato puoi inviare da qualsiasi sottodominio (news@mail.acme.com). Verificare il sottodominio stesso (mail.acme.com) è la pratica migliore per le email di marketing, perché mantiene la reputazione separata da quella del dominio transazionale.
| Piano | Domini |
|---|---|
| Free | 3 |
| Pro | 10 |
| Scale | 1.000 |
Aggiungere un dominio già registrato da un altro team restituisce 422 validation_error (“Domain already registered”).
Guide per provider DNS
Sezione intitolata “Guide per provider DNS”Sei bloccato? Vedi Risoluzione dei problemi.