Docs / SDK / JavaScript / Mail
JavaScript — módulo Mail
🚧 En proceso de liberación Todavía no implementado en el SDK de JavaScript. El contrato completo (entry points, tipos de datos, ejemplos que sí compilan) ya está fijado en el módulo equivalente de Go — úsalo como referencia mientras se completa este port.
Contrato ya fijado (stub)
El módulo mail.js ya existe en el repositorio con la misma forma que el SDK de Go — send() y status() lanzan un error todavía; la capa de transporte HTTP (index.js) ya está implementada (la usa el módulo DNS, que sí es real), solo falta conectar Mail a ella.
import { Mail, QueueStatus } from "@webability/webability-js/mail";
const mail = new Mail(api);
const result = await mail.send({
from: { email: "no-reply@tuempresa.com" },
to: { email: "cliente@ejemplo.com", vars: { nombre: "Ana" } },
subject: "Confirma tu compra",
html: "Hola {{nombre}}",
waitSend: true,
});
// result.queueStatus: QueueStatus.PENDING | .PROCESSING | .SENT | .ERROR
const status = await mail.status(result.queueKey);
// O con una plantilla ya registrada, en vez de subject/html/text:
const result2 = await mail.send({
from: { email: "no-reply@tuempresa.com" },
to: { email: "cliente@ejemplo.com", vars: { nombre: "Ana", codigo: "482913" } },
template: "recuperacion",
});
// Con idioma: busca "recuperacion_fr" ya traducida, o auto-traduce/usa el base
const result3 = await mail.send({
from: { email: "no-reply@tuempresa.com" },
to: { email: "cliente@ejemplo.com", vars: { nombre: "Ana", codigo: "482913" } },
template: "recuperacion",
lang: "fr",
});
El campo template (string, opcional) es el id de una plantilla ya registrada, activa y de tipo email (no un "layout" — se rechaza con error si lo intentas) — el servidor valida esto antes de encolar el correo y responde con error (no un envío fallido en segundo plano) si no. lang (string, opcional) es un código BCP-47 ("fr", "en", "de"…): nunca hace fallar el envío, en el peor caso degrada al idioma base. Ver Con plantilla registrada y Plantillas en varios idiomas para el detalle completo.
¿Dónde se crean las plantillas?
Las plantillas no se crean por API en ningún SDK — se agregan y editan desde Consola → Correos → Plantillas. El SDK solo referencia el id que le pongas ahí.
Mientras tanto
- • Módulo Mail en Go — mismos entry points, mismo contrato de datos.
- • /documentacion/mail — referencia completa de la API HTTP.
- • SDK general de JavaScript — instalación y autenticación.