Relayo Sim

Gratis durante la beta

Prueba lo que pasa después de enviar un correo.

Rebotes, quejas de spam, greylisting, bloqueos por lista negra, buzones llenos. Relayo Sim responde como los servidores de correo reales, para que tu aplicación los maneje bien antes de que ocurran en producción.

Por SMTP o por API HTTP. Sin tarjeta.

signup.test.ts
await relayo.email.send({
  from: { address: '[email protected]' },
  to: { address: '[email protected]' },
  subject: 'Confirma tu cuenta',
});

// Tu webhook recibe, firmado y normalizado:
relayo.on('bounced', (e) => markInvalid(e.recipient));
AceptadoEl simulador acepta el envío hace 2 s
Rebote duroEl usuario no existe · 550 5.1.1 bounceType: hard · reason: user_unknown

Cómo funciona

Una dirección de correo elige lo que pasa.

Nada que configurar por test: el destinatario es el escenario.

1

Envía a una dirección de escenario

Por SMTP desde cualquier librería, o por la API HTTP. [email protected] acepta al tercer intento.

2

Responde como el mundo real

Códigos SMTP y ampliados correctos, rechazos en RCPT o tras DATA, informes DSN y ARF por correo, aplazamientos con el tiempo que pidas.

3

Tu app recibe los eventos

Webhooks firmados con el modelo de eventos de Relayo: el mismo que usarás con SES, SendGrid, Resend, Postmark o Mailgun.

Escenarios

Los fallos que tu aplicación debería saber manejar.

Cada rebote viene clasificado: duro (la dirección no sirve), suave (temporal) o bloqueo (revisa tu configuración y conserva el contacto).

Rebotes

  • hard-bounce@El buzón no existe: 550 5.1.1
  • no-mx@El dominio no recibe correo: 550 5.1.2
  • mailbox-full@Buzón lleno: 452 4.2.2 en cada intento
  • too-large@Mensaje demasiado grande: 552 5.3.4
  • timeout@El receptor no responde a DATA

Bloqueos

  • blocked@Rechazado por política: 550 5.7.1
  • blocklisted@Tu IP en una lista negra: 554 5.7.1
  • dmarc@Fallo de SPF, DKIM o DMARC: 550 5.7.26
  • suppressed@En la lista de supresión, nunca se intenta

Aplazamientos

  • greylist+3@451 4.7.1 hasta el tercer intento
  • rate-limit@El receptor te limita: 421 4.7.28
  • delay+30m@Se entrega tarde, aplazado mientras tanto

Después de la entrega

  • complaint@Lo marcan como spam (informe ARF)
  • unsubscribe@El destinatario se da de baja
  • engaged@Se abre y se hace clic
  • cualquier@Cualquier otra dirección se entrega

Todas en @sim.relayo.dev. Añade +async para que SMTP acepte y el rebote llegue después, como en un relay.

Bandeja de captura

Mira el correo que enviaste de verdad.

  • Vista previa a ancho de escritorio o de móvil, en un marco aislado sin scripts.
  • Texto, HTML y cabeceras tal como llegaron, y el original en .eml.
  • Adjuntos para descargar, e imágenes cid: en su sitio.
  • La línea de tiempo de cada destinatario al lado: qué respondió el servidor y cuándo.

En tu CI

Que el build falle si un rebote no se maneja.

La CLI @alimzen/cli espera el evento que tu código tiene que tratar. La acción de GitHub deja en cada ejecución un resumen de todos los correos enviados.

.github/workflows/test.yml
- uses: Alimzen/relayo/actions/sim@main
  with:
    url: ${{ vars.RELAYO_SIM_URL }}
    api-key: ${{ secrets.RELAYO_SIM_API_KEY }}

- run: npm test

- run: npx @alimzen/cli wait --search "Confirma tu cuenta" \
         --for bounced:hard --timeout 1m

- uses: Alimzen/relayo/actions/sim@main
  if: always()
  with: { step: report }
Terminal
$ npx relayo wait sim_8c1f --for bounced:hard
✓ sim_8c1f: bounced:hard · user_unknown · 550 5.1.1

$ npx relayo wait sim_93ab --for delivered --timeout 30s
✗ No "delivered" event after 30s.
  Seen:
    sim_93ab: deferred ([email protected])

$ echo $?
1

Funciona con lo que ya usas

Sin cambiar tu código de envío.

SMTP

Nodemailer, Django, Rails, Laravel, Spring… Apunta el host al simulador y usa tu clave como contraseña.

API HTTP

Un POST /v1/messages con el mismo cuerpo que la librería Relayo.

Relayo

El driver @alimzen/simulator en tests y CI; SES, SendGrid o Resend en producción.

NestJS

@alimzen/nestjs: módulo, servicio y @OnRelayoEvent() para tus handlers.

Empieza a probar tus rebotes hoy.

Crea una cuenta, copia tu clave y envía tu primer correo a [email protected].