// cómo solucionarlo
Mailgun "Sandbox subdomains are for test purposes only" (403): cómo solucionarlo
Mailgun no envía desde tu dominio sandbox a una dirección no autorizada. Autoriza las direcciones de prueba o añade tu propio dominio.
Qué significa
Toda cuenta nueva de Mailgun recibe un dominio sandbox, un nombre como sandbox1234abcd.mailgun.org, para que puedas probar la API o SMTP de inmediato. Solo entrega a destinatarios autorizados: direcciones que has añadido y que han confirmado. Si envías a cualquier otra persona, Mailgun rechaza el mensaje, normalmente con el estado HTTP 403 y este texto, muy citado:
Sandbox subdomains are for test purposes only. Please add your own domain or add the address to authorized recipients in Account Settings.
Tu código y tus credenciales están bien: la petición se ha autenticado, pero el destinatario no está permitido para un dominio sandbox.
Por qué ocurre
- Tu aplicación sigue usando el dominio sandbox en producción, porque era el valor por defecto en un tutorial, un plugin o una variable de entorno (
MAILGUN_DOMAIN). - El destinatario se añadió pero no confirmó. Mailgun envía una invitación; la dirección solo queda autorizada cuando el destinatario hace clic en el enlace.
- Se ha alcanzado el límite de destinatarios. El centro de ayuda de Mailgun dice que puedes añadir hasta 5 destinatarios autorizados (en el momento de escribir esto).
- Tu plan restringe el envío. El centro de ayuda de Mailgun dice que las cuentas gratuitas sin tarjeta de crédito registrada, y los dominios sandbox, solo pueden enviar a destinatarios autorizados.
- Varios destinatarios en una misma petición: basta una dirección no autorizada en To, Cc o Bcc para provocar el error.
- Las Routes y las listas de correo del dominio sandbox tienen la misma restricción: una Route que reenvía a una dirección externa, o una lista con miembros no autorizados, falla de la misma manera.
El sandbox existe para que las cuentas nuevas no puedan usarse para enviar spam a desconocidos antes de que el propietario demuestre que controla un dominio real. Por eso no hay ningún ajuste que quite la restricción en el propio sandbox: la solución siempre es autorizar la dirección de prueba o pasar a tu propio dominio.
Cómo comprobarlo
- Mira el dominio en la URL de tu API o en tu usuario SMTP. Una URL como
https://api.mailgun.net/v3/sandbox1234abcd.mailgun.org/messages, o un usuario SMTPpostmaster@sandbox1234abcd.mailgun.org, significa que estás en el sandbox. - En el panel de Mailgun, abre Send, Domains, el dominio sandbox y su pestaña de configuración: ahí aparecen los destinatarios autorizados y su estado.
- Abre los Logs del mensaje fallido: muestran el motivo completo.
Cómo solucionarlo
Para pruebas: autoriza al destinatario
Añade la dirección de prueba como destinatario autorizado en la configuración del dominio sandbox (solo pueden hacerlo los usuarios con rol Administrator o Developer). Pide al titular de la dirección que abra la invitación y confirme. Después vuelve a intentarlo. Esto está pensado solo para ti y tu equipo, no para clientes.
Para envíos reales: añade tu propio dominio
Añade un dominio tuyo en Send, Domains, Add new domain. Un subdominio como mg.yourdomain.com es una elección habitual. Publica los registros SPF y DKIM y verifica el dominio; los detalles y los errores DNS habituales están en dominio de Mailgun no verificado. Después cambia la configuración de tu aplicación:
# .env (example) MAILGUN_DOMAIN=mg.yourdomain.com MAIL_FROM_ADDRESS=hello@mg.yourdomain.com # EU domain? use the EU endpoint MAILGUN_ENDPOINT=api.eu.mailgun.net
Usa una dirección From de tu dominio verificado, nunca del sandbox. Si la cuenta te limita a destinatarios autorizados por tu plan, añade los datos de facturación o mejora el plan según indique el panel de Mailgun.
Si después de cambiar de dominio recibes 401 o "Forbidden", la clave de API o la región no corresponden al nuevo dominio: consulta Mailgun 401 Forbidden: clave de API y región UE. Las credenciales SMTP pertenecen a un dominio concreto, así que crea también unas nuevas para tu propio dominio.
Comprueba que está solucionado
Envía un mensaje desde tu aplicación a través de tu propio dominio de Mailgun a la dirección única de la página de inicio de Delivmail. La dirección de prueba no es un destinatario autorizado, así que si llega, ya no estás en el sandbox. Revisa el informe: SPF, DKIM y DMARC deberían superarse para tu dominio. Después reenvía a los destinatarios reales que fueron rechazados. La llegada a la bandeja de entrada sigue dependiendo de tu reputación y de tu contenido.
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
- Rebote de Gmail «550 5.7.26»: email no autenticadoGmail rechazó tu email porque no pudo confirmar que viene de tu dominio. SPF, DKIM o DMARC falta o falla. Así puedes solucionarlo.
- Rebote «550 5.7.1»: mensaje rechazado o bloqueado por políticaUn rebote 5.7.1 significa que el servidor receptor rechazó tu email a propósito. Aprende a leer los mensajes de rebote, a encontrar el motivo real y a solucionarlo.
- Tasa de rebote alta: limpia tu lista de correoEnviar a direcciones que ya no existen daña tu reputación muy rápido. Aprende la diferencia entre rebotes duros y blandos, y elimina las direcciones malas después de cada envío.
- Emails con retraso: greylisting y errores temporales 4xxAlgunos servidores responden «inténtalo más tarde» a propósito. Un servidor de correo normal lo reintenta y el email llega unos minutos tarde. Así distingues un retraso normal de un problema real.
- Aplazamientos «421 4.7.0 [TSS04]» de Yahoo y AOLYahoo rechaza temporalmente tus emails por su volumen o por las quejas. Baja el ritmo, deja que se reintente y corrige lo que no le gusta a Yahoo.