Añadir y verificar un dominio
Para enviar desde hello@acme.com demuestras que eres el propietario de acme.com publicando registros DNS. La verificación configura la firma DKIM (para que los receptores sepan que el correo es realmente tuyo) y un return path personalizado (para que SPF y DMARC se alineen con tu dominio).
-
Añade el 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})` : ""}`);}Ventana de terminal 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"])También puedes usar el panel o
spacepost domains add acme.com. -
Crea los registros DNS
La respuesta contiene un array
recordsy 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;\"" }]}Añádelos en tu proveedor de DNS. Consulta los registros, explicados más abajo y las guías por proveedor.
-
Verifica
Los cambios de DNS pueden tardar unos minutos (rara vez horas). SpacePost vuelve a comprobar automáticamente los dominios pendientes y tú puedes lanzar una comprobación en cualquier 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 confirmedVentana de terminal 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"Ventana de terminal spacepost domains verify acme.comspacepost domains doctor acme.com # looks up each record live and tells you what is missing or wrong
Los registros, explicados
Sección titulada «Los registros, explicados»Los nombres de registro en la API son relativos a tu dominio (send, _dmarc, a1b2c3d4e5f6._domainkey). Algunos proveedores de DNS piden el nombre completo (send.acme.com); las guías por proveedor indican cuáles.
| Registro | Tipo | Nombre | Valor | Finalidad |
|---|---|---|---|---|
| DKIM (x3) | CNAME | <token>._domainkey |
<token>.dkim.amazonses.com |
Publica las claves públicas que Amazon SES rota por ti (“Easy DKIM”). Los receptores las usan para comprobar que cada mensaje fue firmado por tu dominio y no se alteró. Obligatorio: la verificación depende de los tres. |
| Return path | MX | send |
feedback-smtp.<region>.amazonses.com, prioridad 10 |
Recibe las notificaciones de rebotes y quejas dirigidas a send.acme.com. Junto con el TXT siguiente forma un dominio MAIL FROM personalizado. |
| Return path | TXT | send |
v=spf1 include:amazonses.com ~all |
SPF para el subdominio del return path. Como el remitente del sobre está en tu dominio, SPF se alinea con tu dirección From, que es lo que necesita DMARC. |
| DMARC (recomendado) | TXT | _dmarc |
v=DMARC1; p=none; |
Indica a los receptores qué hacer con el correo que no supera la autenticación, y Gmail y Yahoo lo exigen a los remitentes masivos. Consulta DMARC. |
Estados
Sección titulada «Estados»| Estado | Significado |
|---|---|
not_started |
Dominio añadido, DNS aún sin detectar. |
pending |
SpacePost está comprobando el DNS. |
verified |
DKIM está confirmado. Puedes enviar desde este dominio. |
temporary_failure |
Una consulta falló temporalmente. Se reintenta automáticamente. |
failed |
No se encontró el DNS en 72 horas, o un registro es incorrecto. Corrige los registros y vuelve a llamar a verify. |
El dominio pasa a verified en cuanto DKIM se cumple. Si solo faltan los registros del return path, el correo se sigue enviando, pero la alineación de SPF recurre al dominio de Amazon, lo que debilita la alineación de DMARC. Corrígelo para lograr la mejor entregabilidad.
Cada registro de records tiene su propio status con los mismos valores, así que puedes ver exactamente cuál falta.
Enviar desde subdominios
Sección titulada «Enviar desde subdominios»Si acme.com está verificado, puedes enviar desde cualquier subdominio (news@mail.acme.com). Verificar el propio subdominio (mail.acme.com) es una mejor práctica para el correo de marketing, porque mantiene la reputación separada de la de tu dominio transaccional.
Límites
Sección titulada «Límites»| Plan | Dominios |
|---|---|
| Free | 3 |
| Pro | 10 |
| Scale | 1.000 |
Añadir un dominio que otro equipo ya registró devuelve 422 validation_error (“Domain already registered”).
Guías por proveedor de DNS
Sección titulada «Guías por proveedor de DNS»¿Te has atascado? Consulta Solución de problemas.