2026-09-27 — Vincular neni.lat con Resend (canal de correo propio)

Contexto: el usuario pidió “intentar la vinculación a resend de la otra” (la 2ª cuenta Cloudflare, la de neni.lat). La vinculación requiere crear 4 registros DNS en la zona neni.lat y el único token con CF_ACCOUNT_ID_2 no tenía DNS Write (403).

Qué se hizo

  1. Alta del dominio en Resend (API, UA curl obligatorio): POST /domains {"name":"neni.lat","region":"us-east-1"} → 201, id c2804b66-a66b-4bd6-9556-44aa80bedff2.

  2. Acuñar un token con DNS Write usando el permiso que sí traía el token de la cuenta (Account API Tokens Write): POST /accounts/543d69fcf988942b1053c21adc64a607/tokens policies: allow + permission groups DNS Write (4755a26eedb94da69e1066d98aa820be) y Zone Read (c8fed203ed3043cba015a93ad1616f1f), resources {"com.cloudflare.api.account.543d69fcf988942b1053c21adc64a607":"*"}. → token id d84886e6ff279d91358efc63c49a17d6, guardado en ~/nef/neni_lat/.env_cf_dns_token (chmod 600, nunca imprimir). Gotcha: resource com.cloudflare.api.zone.<zid> → error 10000/“no es un resource type soportado”; el formato válido para account tokens es com.cloudflare.api.account.<aid>.

  3. Los 4 registros creados en la zona neni.lat (4f6ccb02798ac15cb165627cd4d77396) — todos HTTP 200:

    tiponombrevalorid
    TXTresend._domainkeyp=MIGf…IDAwQAB (DKIM de Resend)de08623df6ce32f6e9ac1485a9c27cf5
    MXsendfeedback-smtp.us-east-1.amazonses.com prio 100dbe245ba1910bcf5368d4d65d76bc37
    TXTsendv=spf1 include:amazonses.com ~all4a40169d113ccf971141e00b4623a87a
    CNAMErsendsend.forge.rmta.net (sin proxy)6b3280acd9d832df62fc1ba859efc898
  4. Propagación comprobada en [IP], [IP], [IP], [IP], dns.google/resolve y cloudflare-dns.com/dns-query (Status0, 1 answer cada uno), además del NS autoritativo ashton/ivy. Sin DS ⇒ sin DNSSEC que romper.

Estado

  • Resend: rsend verified; resend._domainkey, send MX y send TXT siguen pending a los ~30 min (docs de Resend: “suele verificar en 15 min, hasta 72 h”).
  • Correo de prueba aceptado: POST /emails → 200, id 01a0e4c5-9566-736d-83bc-5ac4a25b9f57, from neni.lat <[ID-EMAIL]> → [usuario]@protonmail.com, errors: None.

Reutilizar / re-verificar

R=$(grep -E '^RESEND_API_KEY=' ~/nef/surtido/.env | sed 's/^[^=]*=//')
curl -s -A "curl/8.7.1" -X POST -H "Authorization: Bearer $R" \
  https://api.resend.com/domains/c2804b66-a66b-4bd6-9556-44aa80bedff2/verify
curl -s -A "curl/8.7.1" -H "Authorization: Bearer $R" \
  https://api.resend.com/domains/c2804b66-a66b-4bd6-9556-44aa80bedff2 | python3 -m json.tool
# revisar entrega del correo de prueba:
curl -s -A "curl/8.7.1" -H "Authorization: Bearer $R" \
  https://api.resend.com/emails/01a0e4c5-9566-736d-83bc-5ac4a25b9f57

Revocar el token DNS si ya no se usa: DELETE /accounts/543d69fcf988942b1053c21adc64a607/tokens/d84886e6ff279d91358efc63c49a17d6 (con CF_ACCOUNT_ID_2 como Bearer).

Pendiente

  • Que Resend pase a verified (re-verificar en unos min / botón “Restart verification”).
  • DMARC opcional (_dmarc.neni.lat TXT) para deliverability, cuando esté verified.