todas las guías

// cómo solucionarlo

SendGrid 403 "from address does not match a verified Sender Identity": cómo solucionarlo

SendGrid rechaza el correo con un 403 cuando la dirección From no es un remitente verificado ni un dominio autenticado. Encuentra el From real y verifícalo bien.

Qué significa

Twilio SendGrid solo te deja enviar desde direcciones que has verificado. Tu mensaje usaba una dirección From que no es ni un Single Sender verificado ni parte de un dominio autenticado, así que la Mail Send API ha respondido con un HTTP 403. El cuerpo suele tener este aspecto:

{
  "errors": [{
    "message": "The from address does not match a verified Sender Identity. Mail cannot be sent until this error is resolved. Visit https://sendgrid.com/docs/for-developers/sending-email/sender-identity/ to see the Sender Identity requirements",
    "field": "from",
    "help": null
  }]
}

Por SMTP (smtp.sendgrid.net), el mismo texto llega como un error 550. No se ha enviado nada.

Por qué ocurre

  • Todavía no hay ninguna identidad de remitente. Las cuentas nuevas deben verificar un Single Sender o autenticar un dominio antes de enviar.
  • El Single Sender no está confirmado. SendGrid envió un email de verificación a esa dirección y nadie hizo clic en el enlace.
  • Tu código envía desde otra dirección. Un Single Sender cubre una dirección exacta. Si verificaste hello@yourdomain.com pero la aplicación envía desde noreply@yourdomain.com, falla.
  • Un plugin sustituye el From. WordPress, WooCommerce o un plugin de formularios pueden enviar desde wordpress@yourdomain.com o desde la dirección del visitante. Consulta emails de formularios de contacto enviados "From" la dirección del visitante.
  • Subdominio distinto. Un dominio autenticado cubre el dominio que autenticaste. Comprueba que el dominio del From es exactamente el que aparece en la lista (o un subdominio cubierto por él).
  • Cuenta o subusuario equivocados. Las identidades de remitente pertenecen a la cuenta o al subusuario que las creó; una clave de API de otro subusuario no las ve.

Un 403 también puede venir de una clave de API sin el permiso Mail Send; en ese caso el mensaje es distinto (habla de permisos o de autorización, no de Sender Identity).

Cómo comprobarlo

  1. Registra en los logs la dirección From exacta de la petición (el campo from.email del JSON de la API, o el MAIL FROM y la cabecera From por SMTP).
  2. En la consola de SendGrid, ve a Settings > Sender Authentication. Revisa la lista de Single Senders (¿está la dirección y está verificada?) y la lista de Domain Authentication (¿está el dominio y está verificado?).
  3. Confirma que la clave de API pertenece a la misma cuenta o al mismo subusuario.

Cómo solucionarlo

Opción 1: verifica un Single Sender (rápido, para pruebas)

En Settings > Sender Authentication, elige verificar un remitente único, introduce la dirección From exacta que usa tu código y haz clic en el enlace del email que SendGrid le envía. El buzón tiene que existir. El propio SendGrid presenta esta opción como una solución para pruebas, no como la mejor opción para producción: el correo no va firmado con tu propio dominio.

Opción 2: autentica tu dominio (recomendado)

Domain Authentication añade registros CNAME a tu DNS para que SendGrid firme tu correo con DKIM para tu dominio. A partir de ahí, puedes usar cualquier dirección del dominio como From y DMARC puede superarse. Si los registros no se verifican, lee los CNAME de autenticación de dominio de SendGrid no se verifican.

Corrige la aplicación

  • Usa en todas partes una única dirección From sacada de tu configuración. Ejemplo con la librería de Node.js:
    await sgMail.send({
      to: 'customer@example.com',
      from: { email: 'hello@yourdomain.com', name: 'Your Shop' },
      replyTo: 'support@yourdomain.com',
      subject: 'Your order',
      text: 'Thank you for your order.'
    });
  • En los plugins SMTP de WordPress, define la dirección From y activa la opción que la fuerza, para que otros plugins no puedan sustituirla.
  • Nunca uses una dirección de Gmail, Outlook o Yahoo como From a través de SendGrid. No puedes autenticar esos dominios y sus políticas DMARC provocan rechazos o que el correo acabe en spam.

Comprueba que está solucionado

Envía un mensaje desde tu aplicación a la dirección única de la página de inicio de Delivmail. Si SendGrid lo acepta, aparece el informe. Con Domain Authentication, DKIM debería superarse para yourdomain.com y DMARC debería superarse. Con solo un Single Sender, verás que DKIM lo firma el dominio de SendGrid, lo que es un motivo para pasar a la autenticación de dominio. Después reenvía el mensaje que falló. Para los problemas generales de envío desde una web, consulta los emails de tu web o de WordPress van a spam.

Comprueba que está solucionado

Un cambio de DNS puede tardar de unos minutos a unas horas. Después, envía un nuevo email de prueba o vuelve a escanear tu dominio.

Guías relacionadas