Envío de emails en WordPress: SMTP, logs y relay externo

Dificultad del post: facilmediadifícil
enviar emails wordpress

Empiezo este post con una afirmación: el método de envío de emails nativo de WordPress no es para nada eficiente, pero es compatible.

De forma nativa, WordPress utiliza PHPMail (mediante la función wp_mail) para el envío de cualquier correo electrónico que tenga que enviar el CMS. Esto es como el wp-cron.php, no es lo ideal, pero es útil para evitar que los usuarios principiantes tengan que realizar complejas configuraciones para instalar WordPress.

email wordpress

WordPress envía correos electrónicos en ciertos momentos clave:

  • Nuevo usuario registrado y envío de datos al nuevo usuario.
  • Cuando el sitio web tiene problemas técnicos (desde la versión 5.2).
  • Cuando se ejecuta un proceso de recuperación de contraseña perdida.
  • Etc.

Cuando instalamos WooCommerce y convertimos nuestra web WordPress en una tienda online, se añaden muchos más correos transaccionales que pueden enviarse a los clientes/visitantes y también a los administradores.

La mayoría de los sitios web WordPress nunca requieren un cambio en la forma de envío de correos electrónicos.

Existen tres casos concretos donde el administrador de un sitio web WordPress realiza un cambio en la forma de enviar emails desde WordPress:

  • Cuando la instalación WordPress deja de enviar emails: Se suele reconfigurar WordPress para dejar de usar PHPMail y se configura el envío mediante un servidor SMTP.
  • Cuando la instalación WordPress envía tantos emails que llegamos al límite de PHPMail en el hosting o servidor: Debemos configurar un relay externo para envío de emails.
  • Cuando la instalación WordPress tiene problemas de entregabilidad con los emails enviados: Suele ser un problema derivado de “quemar” la IP mediante PHPMail y los pasos que hay que dar son los mismos que en el caso anterior. Debemos configurar un relay externo para el envío de correos electrónicos desde el sitio web.

Para cualquiera de estos tres casos, necesitamos un plugin que nos permita realizar esto.

correo electrónico wordpress

Que no salgan o que no lleguen los emails no son los únicos problemas que puede tener un WordPress. El problema es que con las herramientas nativas no podremos comprobar nada, sino que vamos a necesitar ciertos plugins para “loggear” o reconfigurar los emails en WordPress.

En este post, vamos a hablar de algunos problemas que nos podemos encontrar y de cómo podemos comprobar que nuestro WordPress esté enviando correos electrónicos correctamente.

Icono suscripción Newsletter

¿Quieres
recibir mis articulos?

No te pierdas todos mis trucos para WordPress, CMS, Marketing Digital y WPO.

 

¿Qué tipos de correos electrónicos envía WordPress?

Cuando instalamos un WordPress, en muy pocos casos pensamos en los emails que van a salir de la instalación. Incluso hay muchos implementadores WordPress que no les prestan atención a los emails de onboarding que salen desde un WooCommerce.

De hecho, una de las funcionalidades que más se echa en falta en WooCommerce es la capacidad de personalizar emails fácilmente, sin recurrir a “customizers” de terceros.

Un WordPress, de forma nativa, envía 2 tipos de emails: al administrador y a los usuarios.

Hay acciones que ejecutan el envío de emails al administrador (como la búsqueda de actualizaciones), otras acciones ejecutan el envío de emails al usuario (como el cambio de contraseña) y hay otras acciones que desencadenan el envío de emails al administrador y al usuario (como el registro de un nuevo usuario).

A continuación, te dejo un listado de acciones que realizan un envío de email y a quién:

  • Email de aviso de nueva cuenta de usuario. Se envían dos emails: uno al administrador y otro al usuario con sus nuevos datos de acceso.
  • Email de aviso al autor de una entrada cuando existe un comentario nuevo en su publicación.
  • Email de aviso a los usuarios con rol de moderador indicándole un nuevo comentario para moderar.
  • Email de aviso al usuario para que cambie su contraseña. Este mismo email se envía cuando el usuario hace clic en el enlace de contraseña perdida.
  • Email de aviso al usuario cuando se le fuerza a cambiar el correo electrónico asociado a su cuenta.
  • Email de aviso de nuevas actualizaciones del núcleo de WordPress. Este email se envía única y exclusivamente al administrador del sitio web.
  • Email de aviso de nuevas actualizaciones de plugins, cuyo origen es el repositorio oficial de WordPress. Este email se envía única y exclusivamente al administrador del sitio web.
  • Email de aviso de nuevas actualizaciones del theme, cuyo origen es el repositorio oficial de WordPress. Este email se envía única y exclusivamente al administrador del sitio web.

Ten en cuenta que, cuando se envía el email al usuario, el envío es circunstancial, es decir, se va a enviar al email del usuario que está ejecutando la acción en ese momento.

Como he dicho antes, WooCommerce añade sus propios emails, que son unos cuantos más. Incluso los plugins para WooCommerce, como WooCommerce Memberships, añaden sus propios emails transaccionales para sus acciones.

 

¿Se pueden desactivar los emails de WordPress?

Existen plugins que permiten desactivar el envío de todos los emails desde nuestro WordPress, pero también otros para desactivar únicamente ciertos emails de los nativos de WordPress.

También es común que los plugins añadan acciones de envío de emails, pero la desactivación del envío de estos emails específicos de un plugin depende del plugin en cuestión. Con esto quiero decir que, para desactivar los envíos de emails ejecutados por WooCommerce, debemos desactivarlos en el propio plugin. Salvo casos muy raros, los plugins generales como Manage Notification E-mails no suelen detectar estos emails.

Y justo es de este plugin del que quiero hablar, ya que para mí Manage Notification E-mails es un imprescindible para desactivar algunos o todos los correos electrónicos que envía WordPress.

dirección de correo smtp

Este plugin podemos descargarlo de forma gratuita desde el repositorio oficial de WordPress. Nos va a permitir seleccionar los emails transaccionales activos e inactivos mediante casillas de verificación (checkbox).

Su funcionamiento es realmente simple y debemos estar atentos a no pasarnos desactivando, si lo que queremos es desactivar solo los emails que nos sobran y no todos.

Si queremos desactivarlos todos, simplemente desmarcamos todas las casillas de verificación y guardamos.

 

¿Qué tipo de correos electrónicos envía WooCommerce?

Realmente es muy fácil ver cuáles son los emails transaccionales de WooCommerce, al menos los nativos, ya que existe una parte en la configuración del plugin donde aparece el listado e incluso nos indica a quién se le envían.

El listado completo de emails transaccionales de WooCommerce es este:

  • Nuevo pedido realizado. Este correo electrónico se envía al administrador de la tienda online.
  • Pedido cancelado. Este correo electrónico se envía al administrador de la tienda online.
  • Pedido fallido. Este correo electrónico se envía al administrador de la tienda online.
  • Pedido a la espera (on hold). Este correo electrónico se envía al cliente que desencadena la acción.
  • Procesando tu pedido. Este correo electrónico se envía al cliente que desencadena la acción.
  • Pedido completado. Este correo electrónico se envía al cliente que desencadena la acción.
  • Pedido reembolsado. Este correo electrónico se envía al cliente que desencadena la acción.
  • Recibo del cliente con detalles del pedido. Este correo electrónico se envía al cliente que desencadena la acción.
  • Nota para el cliente. Este correo electrónico se envía al cliente que desencadena la acción.
  • Restablecer contraseña de cuenta. Este correo electrónico se envía al cliente que desencadena la acción.
  • Nueva cuenta. Este correo electrónico se envía al cliente que desencadena la acción.

Lo podemos encontrar en esta parte de la configuración de WooCommerce.

correo smtp usuarios woocommerce

Si activamos algún plugin que añade emails transaccionales a WooCommerce, también deberían aparecer aquí (en el listado en los ajustes de WooCommerce), ya que es la “base” para que los plugins de personalización de emails puedan detectarlos y dejarnos personalizar esos emails.

Si quieres personalizar los emails de tu WooCommerce, te recomiendo este plugin: https://alvaro.click/yaymail

 

Los plugins de WordPress y los emails enviados

El 99,9% de los plugins para WordPress utilizan la función wp_mail para el envío de correos electrónicos, por lo que es muy fácil reconfigurarlos para utilizar un servidor SMTP o un API de un relay externo.

Debemos tener en cuenta que la mayoría de los servicios de hosting compartido limitan el envío de emails mediante PHPMail en volumen por hora o en emails enviados por minuto. La razón es que, cuando hackean una web, los atacantes suelen abusar del envío de emails enviando spam y esto suele ser un problema para la reputación de las IPs del servidor de hosting.

Por eso, lo ideal es hacerlo como nosotros en Raiola Networks, donde todos los emails de todos los clientes de nuestra plataforma con cPanel (hosting elástico, hosting compartido, hosting reseller, hosting SEO, etc.) salen a través de un relay que hemos creado para optimizar al máximo la entregabilidad. Pero, aun así, establecemos límites porque un hosting NO es una herramienta de envío de emails transaccionales.

Lo repito una vez más: un hosting NO es una herramienta de emails transaccionales ni una herramienta para enviar emails de marketing.

Volviendo al tema, si configuramos WordPress para que envíe los emails a través de un SMTP en lugar de PHPMail y ese SMTP es nuestro hosting, tendremos exactamente la misma limitación de volumen y de emails por minuto.

Lo ideal, si vamos a enviar muchos emails transaccionales o de marketing, es contratar un relay externo especializado en el envío de este tipo de correos electrónicos.

En cualquier caso, aquí vamos a explicar un ejemplo de ambos casos utilizando el mismo plugin que ya he comentado arriba: FluentSMTP.

 

Configurar SMTP en WordPress

Empezamos con el caso más común: mi WordPress no envía emails y necesito solucionarlo. Esto también tiene la siguiente variación: no me llegan los formularios que la gente envía desde los formularios de mi web WordPress.

Pues bien, es muy fácil de solucionar.

Por si no te apetece leer, te dejo este vídeo que he grabado y he subido a mi canal de YouTube:

El cambio de configuración vamos a hacerlo con el plugin gratuito FluentSMTP, como ya he comentado. Está en el repositorio de WordPress: https://wordpress.org/plugins/fluent-smtp/

Una vez que instalamos y activamos el plugin en nuestro WordPress, nos aparecerá un nuevo menú en el dashboard de nuestro sitio web, dentro de “Ajustes”, llamado “FluentSMTP”.

Aquí encontraremos el inicio de un asistente de configuración que nos permitirá elegir a través de dónde queremos enviar los emails de nuestro sitio web:

correos electronicos plugin smtp wp

Para configurar un SMTP debemos elegir “Other SMTP” entre todas las opciones que nos ofrece FluentSMTP.

Esto abrirá las opciones para configurar nuestro servidor de hosting (u otro servidor) como SMTP para que los correos electrónicos enviados por WordPress salgan directamente desde ahí.

correo electrónico smtp plugin

Vamos a explicar esto por partes.

Empezamos con “Sender Settings”:

correo electrónico smtp plugin

Esta sección permite configurar dos cosas:

  • El correo electrónico desde donde van a salir los emails, pudiendo forzar esto en WordPress para que siempre salgan desde ese “from:“.
  • El nombre del remitente, pudiendo poner el que nosotros queramos forzándolo en la configuración de todo el WordPress.

La configuración de esto es completamente opcional y no influye en nada en la configuración de envío de emails que tenemos justo debajo.

Y justo debajo tenemos los campos para realizar la configuración SMTP.

¿Dónde obtenemos estos datos? Pues tendremos que ir a buscarlos al SMTP que vamos a usar. En este caso, voy a usar los de mi hosting de Raiola Networks, por lo que tengo que entrar a buscarlos a cPanel.

dirección de correo wordpress plugin smtp

Normalmente, todos los paneles de control que permiten gestionar email nos ofrecen usuario, contraseña, servidor de correo y puerto, es decir, todo lo necesario para la configuración SMTP.

Y eso debemos meterlo en el panel de configuración del plugin FluentSMTP dentro de WordPress:

correo electrónico plugin usuarios wordpress

La primera parte de la configuración debe ir adaptada a tu caso, a tu hosting, a tu servidor SMTP. Este ejemplo te va a funcionar si eres cliente de cualquier tipo de hosting con cPanel de Raiola Networks.

En cuanto a esta parte:

correo electrónico plugin usuarios wordpress

Yo la dejaría así, en “Store Access Keys in DB”. Sí que es cierto que con “Access Keys in Config File” mejoramos la seguridad, pero es buscar problemas por buscarlos.

Cuando tengamos toda la configuración hecha, pulsamos el botón “Save Connection Settings” y se guardará la configuración en la base de datos.

Nos aparecerá esta pantalla:

fluent smtp wp correos enviar correos

Y, si queremos probar si WordPress envía emails, debemos ir a la pestaña “Email Test”:

correo wp test fluentsmtp

Simplemente, seleccionamos el “From”, revisamos que en la casilla “Send to” esté el email al que queremos enviar la prueba y, hecho esto, pulsamos “Send Test Email”.

Si todo ha ido correctamente, en nuestro email debemos tener la prueba:

enviar correos fluent smtp wp

Con esto, ya tendremos configurado nuestro WordPress para enviar correos electrónicos a través de un servidor SMTP, en este caso el de nuestro hosting. Sin embargo, como he dicho varias veces, esto es igual para configurar cualquier relay SMTP externo: Sendinblue, Mailgun, etc.

 

Log o registro de envío de emails en WordPress

Otra funcionalidad que WordPress no trae de forma nativa es el registro de correos electrónicos, es decir, un log donde quedan registrados todos los emails enviados por WordPress a los usuarios o al administrador.

Para esto, yo uso dos plugins dependiendo de la situación.

  • Si tengo configurado un relay externo con FluentSMTP, utilizo este mismo plugin para sacar el registro de emails enviados. Lo podemos encontrar dentro de la pestaña “Email Logs” y es bastante completo. Podremos ver el email enviado específicamente y otros datos interesantes (permite incluso reenviar).
  • Si no uso FluentSMTP, utilizo el plugin gratuito Check & Log Email. Este plugin podemos encontrarlo en el repositorio de WordPress: https://wordpress.org/plugins/check-email/

En cualquier caso, un registro es simple, no tiene mucha ciencia. Este es el ejemplo del log de emails de Fluent SMTP en esta misma web:

correo usuarios wp wordpress

El log o registro es útil para solucionar problemas de envío de emails relacionados con la salida de los mismos. Incluso puede ayudarnos en parte con la “recepción” de los emails, aunque para ello hay otras herramientas.

 

Configurar un relay externo como Sendinblue en WordPress

Por último, quiero hablar de los relay externos sin entrar mucho en detalle, ya que esto nos daría para otro post completo.

Los relay externos para envío de emails se utilizan cuando sabemos que nuestra aplicación web va a enviar muchos emails transaccionales o emails de marketing. Es decir, un blog simple no necesita un relay externo; en cambio, un foro, red social o incluso una tienda online que tenga bastante movimiento sí lo necesitan (aunque su webmaster no lo sepa o no lo quiera saber).

Como decía antes, el servidor de correo de un hosting no está preparado para enviar correos masivamente a los usuarios, más allá de 50 o 100 emails al día (como mucho).

Enviar correos puede parecer simple, pero para enviar correos de marketing y transaccionales los servidores de salida tienen que estar preparados para eso.

Como comentaba un poco más arriba, podemos usar el mismo plugin: FluentSMTP.

Precisamente, en el asistente inicial de FluentSMTP tenemos unos cuantos servicios de envío de emails con los cuales es compatible:

formulario comercio electrónico wp

A mí, para el envío de emails, me gustan estos en este orden:

  1. Amazon SES, dentro del stack de Amazon AWS (Cloud)
  2. Sendinblue Transaccional
  3. SendGrid
  4. MailGun

Como la curva de aprendizaje de Amazon SES es pronunciada para usuarios que no estén acostumbrados a Amazon AWS, aquí vamos a ver cómo configurar Sendinblue como relay externo de correo.

Antes de nada, por si quieres verlo en vídeo, aquí te lo dejo:

Y ahora seguimos con el proceso.

En la imagen de la captura anterior salían todos los relay con lo que es compatible FluentSMTP. En este caso, seleccionamos Sendinblue.

Al seleccionarlo, nos saldrá esta pantalla de configuración:

formulario fluentsmtp wp

La ventaja de estos relays es que permiten realizar la configuración simplemente con una API Key del servicio correspondiente. Precisamente el problema de Amazon SES es que no es tan simple: necesitamos crear un usuario de IAM, darle permisos y después generar el API Key. Todo eso se complica para usuarios principiantes o que no tengan experiencia en entornos Cloud.

Volviendo al caso, empezamos por “Sender Settings”:

correo wp páginas web

En esta sección, simplemente debemos configurar un correo electrónico y un nombre de remitente, permitiéndonos forzar el nombre del remitente en los emails enviados desde nuestro WP.

Y en la sección que tenemos justo debajo, debemos configurar el API Key de Sendinblue. Para esto debemos generarla en nuestra cuenta de Sendinblue. Vamos a la sección “SMTP Y API” y generamos una nueva clave:

sitios web wp sendinblue

Copiamos la clave y la pegamos en la sección correspondiente en FluentSMTP:

wp correo fluent smtp sendinblue

Guardamos la configuración y ahora ya solo nos queda probar si todo está correcto desde la sección de “Email Test”:

correo función wp fluent smtp test

Y, si recibimos en nuestro email el correo de prueba, todo estará correcto.

Con esto, ya tendremos nuestro WordPress enviando emails a través de un relay de correo externo especializado en el envío de correos.

Si tienes que enviar muchos correos, quizás la mejor solución sea Amazon SES. No obstante, como te he comentado, si no estás acostumbrado a ciertas cosas puede ser difícil de configurar la primera vez.

Icono suscripción Newsletter

¿Quieres
recibir mis articulos?

No te pierdas todos mis trucos para WordPress, CMS, Marketing Digital y WPO.

Tal vez te interese...

Álvaro Fontela
Álvaro Fontela
Soy ponente en eventos de marketing digital, consultor WordPress y co-fundador de Raiola Networks, amante del mundo del motor (coches japoneses) y tecnófilo empedernido.
Álvaro Fontela
Álvaro Fontela
Soy ponente en eventos de marketing digital, consultor WordPress y co-fundador de Raiola Networks, amante del mundo del motor (coches japoneses) y tecnófilo empedernido.

2 comentarios

  1. Hola Álvaro, como siempre tus post son muy instructivos y fáciles de entender. Yo “era” uno de los que no sabían que “un Hosting no es una herramienta para enviar correos transaccionales o de marketing” pero ahora que lo sé lo tendré en cuenta. Muchas gracias por la información y me quedo con el nombre del pluging fluen smpt para verlo mas en profundidad.
    Lo dicho. Muchas gracias por compartir tus conocimientos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Artículos destacados

wp-config.php de WordPress

Copias de seguridad en WordPress

Optimizar la carga de JavaScript y CSS en WordPress

WebP en WordPress

wp-cron.php de WordPress

Elementor Forms de Elementor Pro