Enviar correo por SMTP

Dirige cualquier aplicación compatible con SMTP a Banger, desde Supabase Auth hasta WordPress o el sistema de correo de tu framework. Una clave de API de Banger es la contraseña; cada mensaje se entrega desde tu dominio y aparece en Registros.

Configuración

Hostsubmit.bangermail.com
Puerto465 con TLS desde el inicio, o 587 con STARTTLS. Si tu red los bloquea, usa 2465 (TLS) o 2587 (STARTTLS); el puerto 25 también acepta STARTTLS.
Nombre de usuariobanger. Cualquier valor funciona: solo la clave de API identifica tu espacio de trabajo.
ContraseñaUna clave de API de Banger con el permiso mail:send.
CifradoTLS 1.2 o posterior. El inicio de sesión solo se ofrece tras iniciar TLS, así que una clave nunca cruza la red en texto plano.
AutenticaciónPLAIN o LOGIN.

Antes de empezar

  1. Crea una clave de API. En la aplicación de Banger, abre Configuración → Desarrolladores → Gestionar claves de API, elige Crear clave de API, selecciona mail:send y copia la clave: solo se muestra una vez. La página muestra esta configuración SMTP junto a tus claves.
  2. Envía desde un canal de Producto. La dirección From debe estar en un nombre de host con un canal de Producto activo, el canal para recibos, alertas y otros correos de tu aplicación. En Dominios, elige Añadir canal, después Producto, y añade los registros DNS indicados. Un canal de Correo (los buzones de tu equipo) o de Campaña no transporta correo de aplicaciones, así que el correo de tu aplicación no puede afectar a la reputación de la bandeja de entrada de tu equipo.

Ejemplo: Supabase Auth

En tu proyecto Supabase, abre Authentication → Emails → SMTP Settings y activa SMTP personalizado:

Correo del remitenteUna dirección en tu canal de Producto, como noreply@app.example.com
Nombre del remitenteEl nombre de tu producto. Banger lo entrega tal como está escrito.
Hostsubmit.bangermail.com
Puerto465
Nombre de usuariobanger
ContraseñaTu clave de API

Guarda y después envía un enlace mágico desde Authentication → Users para comprobar que llega.

Ejemplo: Node.js

import nodemailer from "nodemailer";

const transport = nodemailer.createTransport({
  host: "submit.bangermail.com",
  port: 465,
  secure: true,
  auth: { user: "banger", pass: process.env.BANGER_API_KEY },
});

await transport.sendMail({
  from: "Acme <noreply@app.example.com>",
  to: "person@example.com",
  subject: "Your receipt",
  html: "<p>Thanks for your order.</p>",
});

Para probar desde una terminal con swaks:

swaks --server submit.bangermail.com:465 --tls-on-connect \
  --auth PLAIN --auth-user banger --auth-password "$BANGER_API_KEY" \
  --from noreply@app.example.com --to you@example.com

Qué ocurre con cada mensaje

  • Banger entrega el mensaje tal como lo escribió tu aplicación, con tu nombre From, firmado con la clave DKIM de tu dominio y enviado desde el dominio de rebotes de tu canal de Producto.
  • Elimina Bcc, Return-Path y las cabeceras propias de Banger, y añade Reply-To con la dirección From si no existe.
  • Cada destinatario se comprueba en RCPT TO: una dirección suprimida se rechaza individualmente y se envía a las demás.
  • Un mensaje puede tener hasta 10 MiB y hasta 50 destinatarios.
  • Una cabecera Idempotency-Key hace que un reintento sea el mismo envío. Sin ella, también se reconoce un reintento del mismo mensaje y destinatarios.
  • Cada mensaje aparece en Registros con SMTP como fuente y cuenta para tu plan como cualquier otro envío.

Respuestas y errores

Un rechazo indica su causa y lleva una referencia, (ref …), que coincide con la entrada en Registros. Los códigos que empiezan por 4 son temporales: tu aplicación puede reintentar más tarde.

RespuestaSignificado
535 5.7.8La contraseña no es una clave de API válida de Banger, la clave está revocada o le falta mail:send.
421 4.7.0Tres accesos fallidos en una conexión: se cierra. Comprueba la clave antes de reintentar.
454 4.7.0Demasiados accesos fallidos desde tu red en la última hora. Vuelve a intentarlo más tarde.
550 5.7.1El nombre de host From no tiene un canal de Producto listo para enviar (la respuesta indica qué falta), un destinatario está suprimido o el envío está pausado por reputación.
553 5.1.3Una dirección de destinatario no es válida.
552 5.3.4El mensaje supera 10 MiB.
554 5.6.0El mensaje está mal formado, por ejemplo una cabecera From o Subject repetida, o un From con más de una dirección.
451 4.7.0Se agotó la cuota de envío o el límite diario del espacio de trabajo. Se renueva en el siguiente período de facturación o día, o ahora al subir de plan.
451 4.3.0Banger no pudo aceptar el mensaje ahora. Reintenta.

Seguridad

  • Banger solo almacena un hash de cada clave. Revoca o rota una clave en Gestionar claves de API; los clientes SMTP que la usen serán rechazados en su próximo inicio de sesión.
  • Dale a SMTP su propia clave con solo mail:send, para que una contraseña filtrada no pueda leer tu espacio de trabajo.
  • Los accesos fallidos se limitan por red de cliente y por clave, y un acceso rechazado con una de tus claves se registra en Registros.

¿Prefieres HTTP? El mismo envío está disponible mediante la API de Banger.