Ir al contenido

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).

  1. 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})` : ""}`);
    }

    También puedes usar el panel o spacepost domains add acme.com.

  2. Crea los registros DNS

    La respuesta contiene un array records y un array recommended_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.

  3. 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 now
    if (error) throw new Error(error.message);
    const { data: domain } = await spacepost.domains.get(id);
    console.log(domain?.status); // "verified" once DKIM is confirmed

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.
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.

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.

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”).

¿Te has atascado? Consulta Solución de problemas.