Previsualizar una plantilla de correo
POST /v1/email-templates/{family}/{locale}:preview · permiso email-templates:write · plan Startup y superiores
Renderiza una versión guardada, o un contenido que todavía no ha guardado, con datos de ejemplo, y devuelve el mensaje completo tal como lo verían los destinatarios: el diseño de la plataforma, el bloque de seguridad obligatorio y la marca de la plataforma. No se guarda ni se envía nada. El código y el enlace de ejemplo son aleatorios en cada llamada. La validación es la misma que al guardar un borrador.
Parámetros de ruta
| Parámetro | Descripción |
|---|---|
family |
Familia de correo, por ejemplo verify_email o email_otp (consulte Listar plantillas de correo). |
locale |
Etiqueta de idioma, por ejemplo en o de. |
Solicitud
Envíe version o los campos de contenido, no ambos.
| Campo | Tipo | Descripción |
|---|---|---|
version |
integer | Una versión guardada que se va a renderizar (1 o mayor). |
subject, html, text_body, from_name |
string | Contenido no guardado, con las mismas reglas que guardar un borrador. |
Respuesta
200 OK
{
"subject": "Confirm your email for Example App",
"html": "<!doctype html><html lang=\"en\">…</html>",
"text": "Confirm your email: https://login.example.com/preview/9f2c…",
"locale": "en"
}
locale es el idioma del catálogo usado para las partes propias de la plataforma.
Errores
| HTTP | code | Cuándo |
|---|---|---|
| 400 | unknown_field |
El cuerpo tiene un campo desconocido o no es un objeto JSON. |
| 404 | not_found |
La familia o el idioma no existe, o la versión no existe. |
| 403 | plan_feature_unavailable |
El plan del entorno no incluye plantillas de correo personalizadas (Startup y superiores; required_plan indica cuál). |
| 413 | payload_too_large |
El cuerpo supera los 2 MiB. |
| 422 | validation_failed |
Se enviaron a la vez version y contenido (conflicts_with_content), o el contenido no supera la validación. |
| 422 | template_forbidden_construct |
La plantilla usa una construcción de Liquid fuera del sandbox. |
| 401 | unauthenticated |
La credencial falta, no es válida o ha sido revocada. |
| 403 | insufficient_permissions |
La credencial no tiene el permiso requerido. |
| 429 | rate_limited |
Se superó el límite de frecuencia; reintente después del periodo indicado en Retry-After. |
| 503 | service_unavailable |
Una dependencia no está disponible temporalmente; reintente después del periodo indicado en Retry-After. |
Ejemplo
curl -X POST https://api.eu.keenauth.com/v1/email-templates/verify_email/en:preview \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"version":3}'
CLI: keenauth email-templates preview verify_email en --version 3