Ir al contenido

Resumen y conceptos

Frontmail te permite enviar correos directamente desde tu frontend (un formulario de contacto, una solicitud de reserva, una confirmación de pedido) sin mantener tu propio backend. Conectas el proveedor de correo que ya usas, diseñas en el panel una plantilla HTML con parámetros tipados y llamas a una sola función:

import { init, send } from '@frontmail/browser';
init({ publicKey: 'pk_4f2a…' });
await send('svc_01J9…', 'tpl_01J9…', { name: 'Lucía', message: '¡Hola!' });

La solicitud llega a la API de Frontmail, que la comprueba (origen, protección contra bots, rate limits, validación de parámetros), reserva un crédito y pone el correo en cola. Después, un proceso de envío renderiza la plantilla y la entrega a través de tu proveedor. Los eventos de entrega (entregado, rebotado, abierto…) vuelven a través de los webhooks del proveedor a tu historial y a tus estadísticas.

Todo (claves, servicios, plantillas, créditos, miembros) pertenece a una organización. Un usuario puede ser miembro de varias organizaciones y cambiar entre ellas. Cada organización tiene un plan y su propio saldo de créditos.

Clave pública pk_… Clave privada sk_…
Dónde vive En tu código de frontend: no es un secreto Solo en tu servidor: trátala como una contraseña
Cómo se envía user_id en el cuerpo o cabecera X-Frontmail-Public-Key Authorization: Bearer sk_… (o accessToken en el cuerpo), nunca desde un navegador: las solicitudes con cabecera Origin se rechazan
Qué la protege Orígenes permitidos, Turnstile, rate limits, protección contra bots Que sea secreta: se salta las comprobaciones de origen y de CAPTCHA
Qué puede hacer send, send-form, subidas de archivos, consultar el estado de sus propios mensajes Todo lo anterior más send-batch, history, templates

Como una clave pública es visible para cualquiera que abra tu página, Frontmail nunca confía solo en ella. Lee Claves públicas y privadas antes de publicar.

Un servicio es una conexión con un proveedor de correo: SMTP (Zoho, tu propio servidor…), Mailgun, Amazon SES, Postmark, Mailjet, Brevo, Resend, Gmail u Outlook / Microsoft 365. Las credenciales se cifran con AWS KMS. Frontmail comprueba cada servicio a diario e inmediatamente después de un error de autenticación, y una plantilla puede tener un servicio de respaldo que toma el relevo cuando falla el principal (conmutación por error o failover). Consulta el resumen de servicios.

Una plantilla es un correo HTML completo (con una versión en texto plano generada) más el asunto, los destinatarios (To, CC, BCC, Reply-To, From) y un esquema de parámetros. Los parámetros son tipados (string, email, number, date, list…) y se validan en cada envío, y el cuerpo usa Handlebars para condiciones, bucles y helpers de formato. Consulta Plantillas HTML y Parámetros y tipos.

Un correo aceptado = un crédito. Los créditos provienen de asignaciones (grants):

  • subscription: la cuota mensual de tu plan (no se acumula),
  • pack: paquetes de créditos prepagados válidos de 3 a 12 meses, disponibles en todos los planes, incluido Free,
  • bonus: créditos añadidos por el soporte de Frontmail,
  • overdraft: un margen de sobregiro del 10 % en los planes de pago, que se cobra en tu siguiente factura.

Los créditos siempre se toman de la asignación que caduca antes, y el sobregiro, en último lugar. Los envíos de prueba desde el editor de plantillas son gratuitos. Si un envío falla definitivamente, el crédito se devuelve. Consulta Orden de consumo.

Cuando te quedas sin créditos, Frontmail no tira tu correo. En el modo predeterminado hold, acepta la solicitud con 202 { "status": "held" }, guarda el mensaje y lo envía automáticamente en cuanto vuelve a haber créditos: tras comprar un paquete, una recarga automática, una mejora de plan o al empezar el siguiente periodo de facturación. Lee Cola de correos retenidos.

accepted ─┬─► queued ─► sending ─► sent ─┬─► delivered
│ ├─► bounced
│ └─► complained
├─► held (sin créditos) ─► queued … o ─► discarded (retención caducada / manual)
└─► (error de autenticación del proveedor) held_service_error ─► queued … tras arreglar el servicio
failed (error permanente, crédito devuelto)

Todos los estados se explican en Estados de los mensajes.