Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Log de correos en WordPress

En algunos proyectos es posible que tengas la necesidad de monitorear los correos que se generan en tu sitio ya sea porque estas probando un plugin o desarrollando alguno. En este artículo veremos dos opciones simples de cómo realizar esto.

 

Generalidades

En un artículo anterior habíamos visto cómo configurar SMTP para el envío de correos en WordPress, sin embargo para un sitio en desarrollo no se suele configurar SMTP, en su lugar usamos herramientas que se integren con nuestro entorno local.

Algunas herramientas para un entorno local incluyen herramientas de testing como Mailhog, sin embargo en este artículo nos enfocaremos en las herramientas y plugins que ya nos ofrece WordPress.

A continuación veremos dos formas de capturar el log de los correos salientes desde WordPress, la primera será a través de un plugin y la otra es usando los logs de PHP.

 

Logs de correos usando un plugin

Existen varios plugins que tienen esta funcionalidad, uno de ellos es del plugin WP Mail Logging.

plugin para log de correos

Luego de instalar el plugin veras una opción adicional en el menú de administración de WordPress, puedes dejar la configuración que tiene por defecto.

Cuando se envía un correo desde tu sitio se registrará y podrás ver el contenido, tal como se muestra en la imagen.

Listado de correos plugin wp mail logging

 
También puedes ver el detalle del correo en un popup.

plugin wp mail logging detalle correo

 

Logs de correos usando código

Si quieres evitar un plugin y depurar lo que esta enviando la función wp_mail() de WordPress, puedes habilitar la depuración y luego simplemente usar un Hook de filtro que capture los datos antes de enviarlos.

Puedes usar el siguiente código en tu archivo functions.php de tu tema hijo.

add_filter('wp_mail','dcms_log_emails', 10,1);
function dcms_log_emails($args){
        error_log(print_r($args, true));
        return $args;
}

 
En el código anterior:

  • Usamos el Hook de filtro de la función wp_mail que tiene el mismo nobre
  • Este hook tiene un parámetro de array llamado args en donde esta toda la información de Log
  • Simplemente enviamos esta información al archivo log de PHP
  • Finalmente devolvemos los argumentos pasados como parámetro

 
Si enviamos un correo de recuperación de contraseña, al inspeccionar el archivo /wp-content/debug.log, veremos algo similar a la siguiente imagen en donde se ha capturado la información del correo.

Log mail a través del error log de PHP

 

Conclusión

Como has podido comprobar, puedes capturar fácilmente los correos que se envían desde tu sitio, esto es particularmente útil cuando estas trabajando localmente.

 
¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores:

Suscríbete a DecodeCMS:  

 

La entrada Log de correos en WordPress es un artículo reciente del sitio DecodeCMS.

Enregistrer un commentaire

0 Commentaires