Mail API
Correo transaccional mediante API HTTP: Brevo, Mailgun, Mailjet, Maileroo, Postmark, Mailchimp, Resend, SendGrid, MailerSend, Scaleway.
Extensión
Mail API
Correo transaccional mediante API HTTP: Brevo, Mailgun, Mailjet, Maileroo, Postmark, Mailchimp, Resend, SendGrid, MailerSend, Scaleway.
Descripción
Mail API convierte la API HTTP de tu proveedor de correo en el transporte de correo de EmDash. Los enlaces de inicio de sesión, las invitaciones y el correo de los plugins salen a través de Brevo, Mailgun, Postmark u otro servicio, sin servidor SMTP.
Características
- 10 proveedores: Brevo, Mailgun, Mailjet, Maileroo, Postmark, Mailchimp Transactional (Mandrill), Resend, SendGrid, MailerSend y Scaleway TEM.
- Remitentes verificados: elige una dirección o un dominio que tu proveedor haya verificado, o escribe uno.
- Estado de la cuenta: plan, créditos, cuotas y reputación, leídos de la API del proveedor.
- Errores sobre los que puedes actuar: el propio mensaje del proveedor, con el estado HTTP, el código de error, una pista, un enlace a la página que lo soluciona y la respuesta sin procesar.
- Cola de reintentos: cuando el proveedor está caído o limita la frecuencia, el correo espera en una cola cifrada y se reenvía con un retraso creciente.
- Historial y registros: cada envío con su estado, ID de mensaje, intentos y duración, con filtros, Reenviar, un gráfico de 14 días y un widget del panel.
- Formulario de prueba en la página de cada proveedor.
- Cifrado: las claves de API son secretos de EmDash, el contenido conservado de los correos está cifrado y los correos de inicio de sesión nunca se conservan.
- Administración en inglés, francés y alemán, utilizable en el teléfono.
Proveedores
| Proveedor | Credenciales | Remitentes listados | Estado de la cuenta |
|---|---|---|---|
| Brevo | Clave de API | Direcciones | Plan, créditos |
| Mailgun | Clave de API, dominio, región | Dominio | Estado del dominio |
| Mailjet | Clave de API, clave secreta | Direcciones, dominios | No |
| Maileroo | Clave de envío | No | No |
| Postmark | Token del servidor | No | Servidor, modo |
| Mailchimp Transactional | Clave de Mandrill | Dominios | Reputación, cuota |
| Resend | Clave de API | Dominios | Plan, cuotas |
| SendGrid | Clave de API | Direcciones, dominios | Plan, créditos |
| MailerSend | Token de API | Direcciones, dominios | Cuota de API |
| Scaleway TEM | Clave secreta, ID de proyecto | Dominios | Oferta, uso |
Donde los remitentes no se listan, escribe la dirección.
Instalación
Requisitos
- EmDash 1.3.0 o posterior con un ejecutor de sandbox para plugins: Cloudflare Worker Loader (plan Workers Paid) o
@emdash-cms/sandbox-workerden Node.js. EMDASH_ENCRYPTION_KEYen el sitio: cifra las claves de API. Crea una connpx emdash secrets generatey, en Cloudflare, guárdala conwrangler secret put EMDASH_ENCRYPTION_KEY. Guarda una copia en un gestor de secretos: una copia de seguridad de la base de datos es inútil sin ella.- Un planificador para la cola de reintentos: integrado en Node.js. En Cloudflare, un cron trigger
* * * * *y el manejadorscheduled(las plantillas de EmDash incluyen ambos). - Una cuenta y una clave de API de uno de los proveedores compatibles.
Instalar
- Instala Mail API desde el registro de plugins.
- Revisa los permisos y confirma: solicitudes solo a los hosts de API de los proveedores y entrega del correo de EmDash.
Desde npm: pnpm add @devbitme/emdash-plugin-apimail, y luego añade la importación predeterminada a sandboxed: [...] en la integración emdash() de astro.config.mjs.
Configurar
- En la administración, abre Mail API y luego Configure en tu proveedor.
- Pega la o las claves y guarda. La sección Account confirma que la clave funciona.
- En Send a test email, elige un remitente verificado, introduce tu dirección y envía. Deja activado Use as the default sender para conservar ese remitente.
- Haz clic en Activate en la tarjeta del proveedor de la lista.
- Si hay varios transportes de correo instalados, selecciona Mail API en Settings → Email. Con
astro dev, el transporte de consola de EmDash cuenta como uno.
Ajustes
La pestaña Queue & history define cuánto tiempo puede esperar un correo en la cola (15 minutos para los correos de inicio de sesión y 24 horas para el resto por defecto), si se conserva el contenido de los correos y cuánto tiempo se guardan el historial y los registros (30 días por defecto).
Documentación completa: https://git.devbit.me/devbit.me/emdash-plugin-apimail
Preguntas frecuentes
¿Necesito un servidor SMTP?
No. Mail API llama a la API HTTP del proveedor por HTTPS, así que también funciona donde SMTP no está disponible, como en Cloudflare Workers.
«Send test email» de EmDash solo dice «Failed to send test email».
Usa el formulario Send a test email de la página del proveedor: muestra el mensaje del proveedor, una pista y la respuesta sin procesar. El error también está en Logs y en el registro del servidor.
La lista de remitentes está vacía o muestra HTTP 401 o 403.
La clave puede enviar pero no listar remitentes. Resend necesita una clave Full access, SendGrid acceso de lectura a Sender Authentication y User Account, MailerSend Domains y Sender identity, Scaleway TransactionalEmailReadOnly y Mailgun la clave de la cuenta en lugar de una clave de envío de dominio. Aun así puedes escribir la dirección del remitente.
El error dice que la dirección IP no está permitida.
Añade la IP saliente de tu host a la lista de permitidos del proveedor, o desactiva la restricción. El error enlaza a la página correcta.
¿Qué pasa cuando el proveedor está caído?
Los errores de red, los tiempos de espera, HTTP 429 y 5xx ponen el correo en una cola cifrada. Se reintenta a los 1, 5, 15 y 30 min, luego a 1 h, 2 h y cada 4 h, a través del proveedor activo en ese momento. Los correos de inicio de sesión caducan a los 15 minutos, el resto a las 24 horas. Los errores permanentes, como una clave no válida o un destinatario rechazado, no se reintentan.
La cola nunca se ejecuta.
Abre la pestaña Security de Mail API: lista las tareas programadas y tiene un botón Repair. En Cloudflare, comprueba el cron trigger y el manejador scheduled.
¿Se almacena el contenido de mis correos?
Solo mientras espera en la cola, o en el historial si activas Keep email content in the history. En ambos casos está cifrado. Los correos de inicio de sesión y de invitación nunca se conservan tras el envío.
¿Puedo usar varios proveedores?
Sí. Configura varios y haz clic en Activate en el que envía. Durante una caída, activa otro: los correos en cola se reenvían a través de él.
Seguridad
Informar de una vulnerabilidad
Escribe a [email protected]. Por favor, no abras primero una incidencia pública.
Permisos
- Solicitudes de red, limitadas a los hosts de API de los proveedores:
api.brevo.com,api.mailgun.net,api.eu.mailgun.net,api.mailjet.com,api.us.mailjet.com,smtp.maileroo.com,api.postmarkapp.com,mandrillapp.com,api.resend.com,api.sendgrid.com,api.eu.sendgrid.com,api.mailersend.com,api.scaleway.com. - Transporte de correo: EmDash entrega su correo saliente al plugin, que lo envía a través del proveedor activo.
El plugin se ejecuta en el sandbox de EmDash y no puede acceder a nada más.
Claves de API
Las claves de API son ajustes secretos de EmDash, cifrados con AES-GCM bajo la EMDASH_ENCRYPTION_KEY del sitio. Una clave guardada nunca vuelve al navegador: la administración solo muestra sus últimos 5 caracteres. Cualquier secreto configurado que un proveedor repita en un mensaje de error se enmascara.
Datos almacenados
- Historial: destinatario, asunto, proveedor, estado, ID de mensaje, intentos, duración y error. Se elimina a los 30 días por defecto.
- Contenido del correo: se conserva solo mientras el correo espera en la cola, o en el historial si lo activas. Se cifra con AES-GCM bajo una clave aleatoria de 256 bits, almacenada a su vez como secreto de EmDash. Los correos de inicio de sesión y de invitación nunca se conservan tras el envío.
- Registros: fallos, ejecuciones y purgas de la cola, eliminados junto con el historial.
- Remitentes verificados y estado de la cuenta: almacenados en caché en el almacenamiento del plugin con una huella de los ajustes, nunca una clave.
El correo va solo a la API del proveedor activo. Nada más sale del sitio.
Ruta pública
Una ruta es pública: GET /_emdash/api/plugins/apimail/logo?p=. Sirve los logotipos de proveedores incluidos en el plugin y no lee ningún dato.
Administración
Las páginas de administración usan una ruta privada: antes de que se ejecute el plugin, EmDash exige un usuario con sesión iniciada autorizado para gestionar plugins y la cabecera CSRF.
Registro de cambios
0.3.1
- Tres tarjetas de proveedor por fila en lugar de dos: una lista más compacta en escritorio.
- Un enlace Website en cada tarjeta de proveedor, que se abre en una pestaña nueva.
- Set as default pasa a ser Activate, lo bastante corto para una tarjeta en el teléfono.
- La página de un proveedor se abre al instante a partir de los datos guardados, indicando su antigüedad. Solo se llama al proveedor cuando se guarda una clave o con **Refresh from **, y un mensaje indica cuánto tardó la llamada.
0.3.0
- Botón Set as default en la tarjeta de cada proveedor configurado.
- Un fallo al leer los remitentes verificados o el estado de la cuenta se escribe en los registros y se reintenta en la siguiente carga de la página, salvo que la clave carezca del permiso.
- La lista de remitentes indica cuándo se leyó, también después de un error.
- Las páginas de administración se adaptan al teléfono: dos tarjetas de proveedor por fila, como máximo tres tarjetas de estadísticas, valores largos en su propia línea, menos columnas en el historial.
- Entradas de menú más cortas: History, Queue, Logs.
- Guiones simples en lugar de rayas largas en etiquetas, registros, errores y el asunto del correo de prueba.
- Paquete más pequeño: los logotipos de los proveedores son teselas WebP sin pérdida.
- Ficha del registro: pestañas de descripción, instalación, preguntas frecuentes, registro de cambios y seguridad, y un banner.
0.2.0
- Elige un remitente verificado del proveedor: una dirección verificada, cualquier dirección de un dominio verificado o entrada manual. En la pestaña Sender y en cada formulario de prueba.
- Estado de la cuenta en la página de cada proveedor: plan, créditos, cuotas y reputación.
- Una prueba ya no necesita un remitente configurado, y Use as the default sender conserva el que funcionó.
- Una clave guardada muestra sus últimos 5 caracteres.
- Administración en alemán.