Skip to Content

Mail Pilot

Mail Pilot sustituye la función de correo por defecto de WordPress por el servicio de email transaccional de Brevo. Encamina cada mensaje saliente por la API HTTP de Brevo (con fallback automático a SMTP), registra cada envío en un log buscable y verifica la entrega en tiempo real mediante webhooks. El resultado es un correo transaccional fiable y visibilidad total sobre lo que el sitio entrega de verdad.

El plugin está pensado para propietarios y administradores de sitios que necesitan asegurarse de que los reseteos de contraseña, las confirmaciones de pedido, las respuestas de formularios de contacto, las notificaciones de WooCommerce y demás correo del sistema llegan a la bandeja de entrada. No añade funciones de marketing ni de campañas: se centra en la capa transaccional de WordPress.

Puntos fuertes

  • Entrega vía API de Brevo. Todas las llamadas a wp_mail() se encaminan por la API transaccional de Brevo, lo que mejora la entregabilidad respecto a la función PHP mail() por defecto.
  • Fallback automático a SMTP. Si la llamada a la API no se puede completar (por ejemplo, por un problema de red puntual), el mensaje se reintenta vía Brevo SMTP para que no se pierda correo.
  • Log de correo buscable. Cada mensaje saliente se guarda con destinatario, asunto, cuerpo, cabeceras, estado y timestamp. El log se filtra por estado y se busca por destinatario o asunto.
  • Seguimiento de aperturas y clics. Cuando está activo, Brevo inyecta un píxel de seguimiento y reescribe los enlaces para que el plugin registre las aperturas y clics de cada mensaje.
  • Verificación de entrega por webhooks. Brevo devuelve eventos de entrega, hard bounce, soft bounce, blocked, deferred y queja por spam, que Mail Pilot refleja en la entrada del log.
  • Limpieza automática. Una tarea cron de WordPress elimina las filas antiguas del log según un periodo de retención configurable para que la base de datos no crezca sin control.
  • Prevención de conflictos. Mail Pilot detecta otros plugins SMTP (en particular WP Mail SMTP) y avisa cuando ambos sobrescribirían wp_mail(), evitando envíos duplicados o perdidos.
  • Reenvío y prueba. Cualquier mensaje del log se puede reenviar desde la página de admin, y un panel de email de prueba integrado verifica la configuración.

Requisitos

  • WordPress 6.0 o superior.
  • PHP 7.4 o superior (recomendado PHP 8.1+).
  • Una cuenta Brevo (el plan gratuito basta para los volúmenes transaccionales típicos).
  • Una dirección de remitente verificada o un dominio de envío autenticado en Brevo.
  • Acceso HTTPS saliente desde el servidor de WordPress hacia api.brevo.com en el puerto 443, más el puerto 587 para el fallback SMTP.
  • WordPress cron (wp-cron) habilitado, o una tarea cron del sistema que llame a wp-cron.php, para que la limpieza se ejecute en su horario.

Instalación

  1. Descarga la última versión de mail-pilot.zip desde tu cuenta o desde la página de descargas del plugin.
  2. En el administrador de WordPress, abre Plugins → Añadir nuevo → Subir plugin.
  3. Elige el ZIP, pulsa Instalar ahora y luego Activar plugin.
  4. Tras la activación aparece una nueva entrada en Mail Pilot → Ajustes. El plugin también añade un menú principal Mail Pilot con acceso directo al log y a las pantallas de estadísticas.

Al activarse, Mail Pilot crea su tabla de base de datos personalizada ({prefix}_mail_pilot_logs) que se usa para almacenar el log de correo. No se intercepta ningún correo hasta que se guarda la API key y se habilita la integración.

Configuración

La configuración se divide en tres áreas: las credenciales de Brevo, la identidad del remitente y las opciones operativas de log, tracking y retención. Todos los ajustes están en Mail Pilot → Ajustes.

1. Crea una cuenta Brevo y una API key

  1. Regístrate en brevo.com  si aún no tienes cuenta. El plan gratuito permite un volumen generoso de correo transaccional al día, suficiente para la mayoría de sitios pequeños y medianos.
  2. Inicia sesión en el dashboard de Brevo.
  3. Abre el menú de usuario en la esquina superior derecha y elige SMTP & API.
  4. Selecciona la pestaña API Keys y pulsa Generar una nueva API key.
  5. Dale a la clave un nombre reconocible (por ejemplo wordpress-mail-pilot) y copia el valor generado. Brevo muestra el secreto una sola vez; guárdalo en un lugar seguro.

2. Verifica un remitente

Brevo se niega a enviar mensajes desde un remitente no verificado. Antes de guardar la configuración en WordPress, asegúrate de que la dirección de remitente o el dominio entero estén verificados en Brevo:

  • Para una sola dirección, abre Senders, Domains & Dedicated IPs → Senders en Brevo, añade la dirección y confírmala mediante el correo que envía Brevo.
  • Para un dominio, abre Senders, Domains & Dedicated IPs → Domains y sigue el asistente que pide añadir los registros DNS de SPF, DKIM y DMARC. La autenticación de dominio ofrece la mejor entregabilidad y se recomienda encarecidamente para sitios en producción.

3. Introduce las credenciales en WordPress

  1. Abre Mail Pilot → Ajustes en el administrador de WordPress. La página se divide en tres pestañas — General, Logging y Avanzado —, pero las credenciales y el mailer de prueba están en la pestaña General.
  2. (Opcional) En la tarjeta Licencia de arriba, pega tu clave PILOT-XXXX-XXXX-XXXX-XXXX y pulsa Verificar y guardar para habilitar las actualizaciones automáticas del plugin desde el feed de releases de GitHub.
  3. En la tarjeta Conexión, deja Proveedor de correo en Brevo (el único proveedor que se incluye actualmente).
  4. En la tarjeta Ajustes de Brevo, pega la API key en el campo API Key y pulsa Probar conexión para validar las credenciales contra la API de Brevo.
  5. En la tarjeta Remitente, configura:
    • From Email con la dirección verificada del paso anterior, y marca Forzar From Email para sobrescribir cualquier remitente por correo que pongan otros plugins.
    • From Name con la etiqueta que debe aparecer como autora de los mensajes salientes, y marca Forzar From Name para que gane también frente a las sobrescrituras por correo.
  6. Pulsa Guardar ajustes.

Si quieres enviar un correo de verificación rápida, la tarjeta Email de prueba al final de la pestaña General expone un campo Enviar a y un botón Enviar prueba.

Mail Pilot — Ajustes (pestaña General)
Ajustes de Mail Pilot — pestaña General con las tarjetas Licencia, Conexión, Ajustes de Brevo, Remitente y Email de prueba.

4. Envía un correo de prueba

Debajo de la sección de credenciales, el formulario Enviar correo de prueba te permite verificar la configuración de extremo a extremo:

  1. Introduce la dirección de destino (tu propia bandeja de entrada es una buena opción).
  2. Pulsa Enviar correo de prueba.
  3. El plugin muestra al momento un mensaje de éxito o de error, y el mensaje aparece en el log en pocos segundos.

Si el mensaje de prueba llega a la bandeja de entrada, la integración vía API funciona. Si no llega en un par de minutos, abre la entrada del log y revisa el detalle de respuesta que devolvió Brevo; después consulta la sección de resolución de problemas más abajo.

5. Configura el webhook de entrega

Los eventos de apertura, clic y entrega los envía Brevo de vuelta a WordPress mediante un webhook. Configurarlo es opcional pero recomendado, porque sin él el log solo mostrará que el mensaje fue aceptado por Brevo, no si se entregó, rebotó o se abrió de verdad.

  1. En Mail Pilot, copia la URL del webhook que aparece en la página de ajustes. Apunta al endpoint REST https://<tu-sitio>/wp-json/mail-pilot/v1/webhook.
  2. En el dashboard de Brevo, abre Transactional → Settings → Webhook y pulsa Añadir nuevo webhook.
  3. Pega la URL en el campo URL to call.
  4. Selecciona los eventos a reportar. El conjunto recomendado es:
    • Sent
    • Delivered
    • Hard bounce
    • Soft bounce
    • Blocked
    • Spam (queja)
    • Opened (solo si el seguimiento de aperturas está activo)
    • Clicked (solo si el seguimiento de clics está activo)
  5. Guarda el webhook.

Brevo empezará a enviar al instante las actualizaciones de estado a WordPress. La tabla del log refresca la columna de estado conforme llegan los eventos.

6. Tracking, retención y limpieza

Las pestañas Logging y Avanzado de la página de ajustes exponen las opciones operativas:

  • Activar seguimiento de aperturas. Cuando está activo, Brevo incrusta un píxel de seguimiento 1x1 en el cuerpo HTML. El cliente de correo del destinatario carga el píxel y eso cuenta como apertura.
  • Activar seguimiento de clics. Cuando está activo, los enlaces de los correos HTML se reescriben para apuntar a un redirector de Brevo que registra el clic y luego reenvía al usuario a la URL original.
  • Retención del log (días). Número de días tras los cuales las entradas del log se eliminan en la tarea de limpieza. Por defecto, 30 días. Pon 0 para conservarlas para siempre (no recomendado en sitios con mucho volumen).
  • Programación de la limpieza. Frecuencia del evento de cron de WordPress que poda el log. Por defecto, diaria.
  • Registrar el cuerpo del mensaje. Cuando está desactivado, solo se guardan los metadatos (destinatario, asunto, estado), lo que reduce el tamaño de la base de datos y evita guardar el cuerpo de correos sensibles como los reseteos de contraseña.

Pulsa Guardar cambios para aplicar.

Uso

Una vez activa la integración, Mail Pilot funciona de forma transparente. Cada llamada a wp_mail() desde el core de WordPress, desde un tema o desde un plugin se intercepta y se reencamina por Brevo. No hace falta tocar código en WooCommerce, Contact Form 7, WPForms, BuddyPress ni en ningún otro plugin que use la API de correo estándar de WordPress.

El dashboard

El menú principal Mail Pilot abre un dashboard que resume la actividad de correo del periodo seleccionado. Un selector de rango arriba alterna entre 7 días, 14 días y 30 días, y seis tarjetas KPI en la parte alta de la página muestran Total enviados, Entregados (con % de entrega), Fallidos (con % de fallo), Rebotes, Aperturas (con % de aperturas) y Clics. Los números se actualizan a medida que llegan eventos del webhook.

Mail Pilot — Dashboard
Dashboard de Mail Pilot — tarjetas KPI, gráficos de Volumen de correo / Estado de entrega / Aperturas y clics / Top fuentes / Horas de envío y la tarjeta Cuenta Brevo con el saldo de créditos.

Debajo de los KPIs, el dashboard renderiza cinco gráficos en vivo alimentados por el propio log del plugin:

  • Volumen de correo — área diaria apilada de mensajes entregados, bloqueados y rebotados.
  • Estado de entrega — desglose en doughnut de esas mismas tres categorías para el periodo seleccionado.
  • Aperturas y clics — gráfico de líneas diario de aperturas y clics únicos.
  • Top fuentes — barra horizontal con los plugins/temas que generan más correo, derivada del call site registrado en cada envío.
  • Horas de envío — histograma por hora que muestra cuándo sale el correo del sitio frente a cuándo lo despacha Brevo, útil para detectar tormentas de cron.

Una tarjeta Cuenta Brevo al final saca el estado en vivo de tu cuenta Brevo: el correo de la cuenta conectada, el saldo de créditos actual y contadores de Requests, Delivered, Opens, Clicks, Hard bounces, Soft bounces, Blocked y Spam reports en todos los canales de envío (API, SMTP relay y software externo).

El log de correo

Mail Pilot — Log de correo
Log de correo — tabla paginada con cada mensaje procesado por el plugin, con acciones en masa, filtros de estado / búsqueda y una acción Ver por fila.

La pantalla Log de correo (Mail Pilot → Email Log) lista cada mensaje procesado por el plugin, del más reciente al más antiguo, con un desplegable de acciones en masa, un filtro de estado, un buscador por texto libre y una acción Ver por fila. Cada fila muestra:

  • La dirección del destinatario (o la primera si hay varias).
  • El asunto.
  • El estado actual: queued, sent, delivered, opened, clicked, soft-bounce, hard-bounce, blocked, spam o error.
  • El timestamp del último cambio de estado.
  • El message ID de Brevo (sirve para correlar la entrada con los propios logs de Brevo).

Usa la caja de búsqueda sobre la tabla para filtrar por destinatario o asunto, o el desplegable de estado para ver solo los mensajes que fallan. Al pulsar una fila se abre la vista de detalle, que expone:

  • Las cabeceras y el cuerpo completos del mensaje (si el log de cuerpo está activo).
  • La lista de destinatarios (To, Cc, Bcc).
  • Cada evento rastreado con su timestamp.
  • La respuesta cruda de Brevo, útil para tickets de soporte.

Desde la vista de detalle puedes pulsar Reenviar para reintentar el mensaje sin cambios, o Copiar para usarlo como punto de partida de un nuevo mensaje de prueba.

Widget del escritorio de WordPress

Mail Pilot registra un widget en la pantalla estándar Escritorio (la página que abre WordPress al iniciar sesión). El widget refleja el dashboard propio del plugin de un vistazo, así puedes detectar anomalías de entrega sin entrar en el menú de Mail Pilot.

Mail Pilot — widget del escritorio de WordPress
El widget de Mail Pilot en el Escritorio de WordPress — selector de periodo, gráfico de líneas diario Delivered / Failed / Bounced y el pie con la cuenta Brevo (saldo de créditos y contadores en vivo).

El widget expone un selector de rango Últimos 7 / 14 / 30 días, un gráfico de líneas de Volumen de correo (Delivered / Failed / Bounced) y un pie Brevo con el saldo de créditos actual y contadores de Requests, Delivered, Failed, Bounced, Opens y Clicks. Un enlace Ver log completo en la cabecera abre la página del log de correo.

El widget es opt-in: actívalo o desactívalo en Mail Pilot → Ajustes → Avanzado → Widget del escritorio.

Convivencia con otros plugins

Mail Pilot sustituye la implementación por defecto de wp_mail() con su propia extensión de PHPMailer. Como consecuencia, es incompatible con cualquier otro plugin que haga lo mismo, incluidos WP Mail SMTP, Easy WP SMTP, Post SMTP, FluentSMTP y herramientas similares. El plugin detecta los más comunes y muestra un aviso en el admin pidiéndote que elijas un único mailer. El camino recomendado es desactivar el otro plugin SMTP e importar sus credenciales en Mail Pilot si hace falta.

WooCommerce, BuddyPress, WPForms, Contact Form 7, Easy Digital Downloads y las notificaciones del core de WordPress siguen funcionando sin cambios: todos pasan por wp_mail() y, por tanto, Mail Pilot los captura de forma automática.

FAQ

¿Mail Pilot sustituye solo el correo transaccional o también las campañas de marketing? Solo gestiona el correo transaccional, es decir, todo lo que se envía mediante la función wp_mail() de WordPress. Las campañas de marketing creadas en el dashboard de Brevo se gestionan allí y no aparecen en el log de Mail Pilot.

¿Tengo que pagar por Brevo? No. El plan gratuito de Brevo incluye actualmente una cuota diaria de correo transaccional que cubre la mayoría de sitios pequeños y medianos. Si tu volumen crece, puedes pasar a un plan de pago desde el propio dashboard de Brevo sin reinstalar el plugin.

¿Puedo seguir usando WP Mail SMTP y Mail Pilot al mismo tiempo? No. Solo un plugin puede sobrescribir wp_mail(); ejecutar dos a la vez lleva a envíos duplicados, mensajes perdidos o errores PHP. Desactiva el otro plugin SMTP antes de activar Mail Pilot.

¿Se guarda en la base de datos el cuerpo de los mensajes? Solo si Registrar el cuerpo del mensaje está activo en los ajustes. Con esa opción desactivada, el log conserva destinatario, asunto, cabeceras y estado, pero no el cuerpo, lo que es preferible cuando un sitio envía reseteos de contraseña u otro contenido sensible.

¿Funciona el seguimiento de aperturas en todos los clientes de correo? El seguimiento de aperturas depende de que el destinatario cargue imágenes remotas en su cliente. Muchos clientes corporativos y la Mail Privacy Protection de Apple bloquean o precargan el píxel, así que las tasas de apertura conviene interpretarlas como un límite inferior (o superior), no como una cifra exacta.

¿El plugin admite varias direcciones de remitente? El remitente por defecto se configura globalmente. Los plugins o el código que pasan una cabecera From: explícita a wp_mail() usarán esa dirección siempre que esté verificada en Brevo. Las direcciones no verificadas las rechaza la API.

¿Puedo exportar el log? Sí. La pantalla del log tiene un botón Exportar CSV que exporta la vista filtrada actual. La exportación contiene destinatario, asunto, estado, timestamps y message ID de Brevo.

¿Dónde se guardan los datos? Los logs se guardan en una tabla personalizada llamada {prefix}_mail_pilot_logs en la base de datos de WordPress. Los ajustes viven en la tabla estándar de opciones de WordPress. No se envía nada a terceros aparte del propio Brevo.

¿Mail Pilot es compatible con multisite? Sí. Cada sitio de una red multisite mantiene sus propios ajustes y su propia tabla de log, y usa su propia API key de Brevo. El plugin también puede activarse a nivel de red.

Resolución de problemas

La página de ajustes muestra “API key rechazada”. Vuelve a copiar la clave desde Brevo y asegúrate de que no hay espacios al principio ni al final. Comprueba que la clave no haya sido revocada ni limitada en su scope en el dashboard de Brevo. Las claves creadas para la API v2 pueden no funcionar; genera una v3 desde la pestaña API Keys.

Los correos de prueba salen como enviados pero no llegan. Abre la entrada del log del mensaje de prueba y revisa las secciones Estado y Respuesta de Brevo. Los casos más habituales son:

  • El destinatario está en la lista de supresión de Brevo (rebote o baja previa). Quítalo desde Contacts → Suppressed contacts en Brevo.
  • El remitente o el dominio de envío no está verificado, así que Brevo acepta la petición pero bloquea el mensaje.
  • El proveedor de correo del destinatario ha marcado el mensaje como spam. Revisa la carpeta de spam y comprueba SPF, DKIM y DMARC del dominio de envío.

Los eventos del webhook nunca llegan al log. Comprueba que la URL del webhook guardada en Brevo coincida con la que muestra la página de ajustes de Mail Pilot, incluyendo el protocolo (https) y cualquier subdirectorio de tu instalación. WordPress debe ser accesible desde la Internet pública; los webhooks no se pueden entregar a un sitio detrás de una VPN ni a localhost. Si usas un plugin de seguridad o un WAF, asegúrate de que las peticiones a /wp-json/mail-pilot/v1/webhook no se bloqueen.

No se borran las entradas antiguas del log. La limpieza la dispara el cron de WordPress. Si tu sitio tiene muy poco tráfico, el cron puede no dispararse con suficiente frecuencia; configura una tarea cron del sistema que llame a wp-cron.php una vez por hora. También puedes lanzar una limpieza manual con el botón Ejecutar limpieza ahora al final de la página de ajustes.

Los correos de un plugin concreto no pasan por Brevo. Comprueba si el plugin en cuestión envía correo mediante su propia implementación SMTP en lugar de wp_mail(). Los plugins que se saltan wp_mail() no se pueden interceptar; consulta su documentación para que apunten a las mismas credenciales de Brevo o desactiva su mailer personalizado.

Tras pasarme a Mail Pilot los correos salen desde otra dirección. La dirección de remitente configurada en Mail Pilot sobrescribe la que usaría WordPress por defecto. Para mantener una dirección “From” por plugin, asegúrate de que ese plugin fije la cabecera From: de forma explícita al llamar a wp_mail(); si no, actualiza el remitente global en Mail Pilot → Ajustes al valor que quieras.

Last updated on