Configurar el envió de emails por SMTP en WordPress

Diógenes Mata

Cuando instalamos WordPress en un servidor el envió de emails “debería” funcionar de manera automática, pero tú y yo sabemos que la teoría casi siempre se ve superada por la realidad ?.

Si tu WordPress no envía los emails de tus plugins, no dejes de leer este artículo, porque te enseñaré como solventarlo, y lo mejor, como a ti te gusta: sin gastar un centavo y con herramientas gratuitas ?.

¿Por qué mi WordPress no envía emails?

WordPress usa de manera predeterminada la función mail de PHP para el envío de emails del sistema base y plugins. Cada servicio de hosting tiene políticas propias sobre el uso del PHP por los usuarios, en algunos la función mail está habilitada mientras que en otros puede no estar disponible.

Esto nos obliga a depender de la configuración del servidor donde alojemos nuestro sitio.

El envió de emails es un proceso fundamental en nuestro WordPress, ya que es la forma típica de comunicarse el servidor con nosotros o con otros usuarios para múltiples tareas, muchas de ellas críticas para su funcionamiento.

Un ejemplo de esto son los plugins de seguridad, como el iThemes; estos nos envían notificaciones al correo electrónico sobre vulnerabilidades o posibles intentos de hackeos que deben ser solventados a la brevedad posible.

SMTP para el envió de emails

smtp para el envió de emails

Una de las mejores maneras para dejar de depender del hosting en este proceso es, usando el SMTP (Simple Mail Transfer Protocol o protocolo para transferencia simple de correo) de servicios de correo electrónico de terceros, como Gmail.

Usar el servicio SMTP de terceros es  una gran ventaja, ya que nos sirve como puente para el envío de nuestros emails sin tener que depender de la función mail del PHP del servidor.

En este post usaremos el SMTP de Gmail, el cual nos permite enviar hasta 2000 correos por día, más que suficiente para el uso normal en WordPress.

Una de las ventajas de Gmail, es que al ser un servicio reconocido y autentificado evitamos que los correos electrónicos caigan en la bandeja de spam.

Post SMTP Mailer/Email Log

Para que esto funcione, es necesario un plugin que enlace nuestro servidor y el SMTP de Gmail para el envió de los correos electrónicos en WordPress.

He probado varios de ellos y muchos me fallaron, hasta que hallé Post SMTP. Funciona a la perfección y lo mejor es que es completamente gratuito. Es un plugin muy popular que cuenta con más de 10.000 instalaciones activas.

Este plugin es la actualización del famoso Postman SMTP, que tenia mas de 100.000 instalaciones, aunque es casi igual (por no decir idéntico ?), esta actualizado y constestan rapidamente en sus foros de soporte.

Pongámonos entonces manos a la obra para que hacer que WordPress envíe los emails con Post SMTP mediante Gmail.

Haciendo que WordPress envíe correos electrónicos por SMTP

Necesitamos instalar el Post SMTP en nuestro servidor; lo puedes descargar desde aquí e instalarlo manualmente.

Mi recomendación es hacerlo directamente desde la administración de WordPress en Plugins > Añadir nuevo, colocando Post SMTP en el campo de búsqueda, y dándole clic al botón Instalar ahora. No olvides activarlo al finalizar la instalación.

como instalar post smtp en wordpress

Una vez hecho esto, dirígete en el menú de administración a Post SMTP. Hazle clic al vínculo Show All Settings (está ubicado debajo del botón Start the Wizard).

entrar en la configuración de post smtp

En la pestaña principal Account, seleccionamos en el tipo de transporte (Transport): Gmail API. De esta pantalla necesitaremos la información que está en los campos Authorized JavaScript origins y Authorized redirect URI, ya que nos la solicitará Google cuando configuremos la API.

información necesaria de post smtp para gmail api

Creando la Gmail API para Post SMTP

Como te habrás imaginado 💡 es necesario tener un correo de Gmail del cual podamos servirnos. Te recomiendo crear uno específicamente para los servicios de Google que nuestra web pueda necesitar.

Entra con tu cuenta de Gmail en el navegador, de manera que te encuentres logueado al momento de crear la API. Dirígete a la Google Developers Console desde aquí. Este vínculo te llevará directamente a la creación de la Gmail API.

En la primera pantalla decide si quieres recibir los correos de Google y acepta las condiciones de uso, para luego darle clic a Acertar y continuar.

aceptar condiciones de uso de gmail api

Posteriormente solo debes hacer clic a Ir a las credenciales.

ir a crear credenciales gmail api

En la siguiente pantalla selecciona ID de cliente. Debajo te muestro la ubicación exacta ?.

añadir credenciales a la gmail api

Hazle clic al botón Configurar pantalla de autorización (Google debería quitar varias pantallas en este procedimiento, esta es redundante ?, ¿No te parece?)

configurar pantalla de autorizacion

Esto nos lleva a las opciones para autorización de OAuth. En la dirección de correo electrónico nos cercioramos que sea el correo que usamos para loguearnos (por defecto está colocado) y le damos un nombre al producto, en mi caso Correo SMTP.

Los demás campos son opcionales, puedes saltártelos. Guarda los cambios.

pantalla autorizacion oauth de gmail api para postman smtp

Por fin llegamos a la pantalla de creación de la ID de cliente ?.

En el tipo de aplicación selecciona Web. En los campos Origenes de Javascript autorizados y URIs de redireccionamiento autorizados, colocaremos la información que nos da el plugin Post SMTP en Authorized JavaScript origins y Authorized redirect URI respectivamente.

Ahora sólo debes dar clic a Crear.

creación de la id de cliente de gmail api

A continuación se generara la ID de cliente y Secreto de cliente, se nos mostrará en pantalla. Estas claves son las que nos servirán para autenticarnos en Gmail con el plugin Post SMTP.

claves de cliente oauth

Copia estas dos claves, ya que las necesitaremos a continuación (estarán disponibles, de todas maneras, en la Google Developers Console, en el apartado de credenciales, para este ejemplo como Cliente web 1)

Configurando Post SMTP

Vamos de vuelta al WordPress en la configuración de la Gmail API del plugin.

Copiamos la ID de cliente en el campo de Client ID y Secreto de cliente en el campo Client Secret; todo esto en la pestaña Account.

configurar en envió de emails en postman smtp

Selecciona la pestaña Message y coloca el correo electrónico de Gmail, y el nombre que desees aparezca en los mensajes enviados mediante este servicio, en los campos respectivos. Guarda los cambios.

introducir email y usuario en postman smtp

Sólo nos falta concederle los permisos al plugin para que se conecte con la cuenta de Gmail. Para ello en la pantalla principal de Post SMTP haz clic al vínculo Grant permission with Google.

dar permisos de gmail a postman smtp

Veremos una pantalla de Google donde debemos darle clic a botón Permitir (recuerda estar logueado con tu cuenta de Gmail)

conceder permisos de gmail a postman smtp

Con esta acción debería estar configurado nuestro servicio de envió de emails con Post SMTP para WordPress.

Te recomiendo hacer una prueba haciendo uso del vinculo Send a Test Email, ubicado en la pantalla principal del plugin.

En esta guía creo que batí mi record de pantallazos ?, pero valió la pena, ¡para que no exista ninguna duda!.

Cualquier incidencia que tengas házmelo saber en los comentarios. Saludos.

Configurar el envió de emails por SMTP en WordPress
5 (100%) 1 voto

11 comentarios en “Configurar el envió de emails por SMTP en WordPress”

  1. Funciona genial! Muchas gracias por tu tutorial!
    ¿Es posible que cuando lleguen los mails el destinatario sea el que yo quiera? o siempre debe de ser el del gmail con el que he creado la API.

    MUchas gracias

    • Me alegra leerte Angel.
      Este tutorial sirve para que wordpress pueda enviar correos sin depender de tu servidor, el gmail nos sirve como puerta de salida, nada mas.
      El destinatario dependerá del plugin que lo envié.
      Saludos.

  2. Excelente artículo.
    Tutoriales como este siempre son realmente buenos.
    Necesitaba precisamente como enviar emails con wordpress y creo que ahora ya tengo la solución idonea.

    saludos.

  3. Funciona perfecto peeeeeeeeeeeeero….. Llegan desde mi correo de Gmail, y necesito que lleguen desde mi correo empresarial, que está alojado en GoDaddy, creo que utiliza el servicio de SMTP de Office360. Pero para salir del apuro me sirvió tu guía! Gracias 😀

  4. Fantástico tutorial. Me falló el último paso, Grant Permision with google aparece deshabilitado y no puedo tocarlo, no sé como lo hice pero llegué al siguiente pantallazo…aún así me dice esto…Your web host has placed a firewall between this site and the Internet.
    The SMTP hostname is wrong or the mail server does not provide service on this port.. supongo que será el servidor de hosting. En fin…¿ algún consejo para deshacer todo?.
    Aún así el tutorial me parece alucinante, entras en un nivel de detalle que pocos hacen. Muchas muchas gracias.

    • Saludos Ana. Aparentemente tu hosting esta bloqueando el puerto de conexión del plugin
      Para que funcione el plugin debes darle permisos al plugin para que habilite el envió de los correos en la opción Grant permission with Google.
      Prueba en la pestaña Transport, en la opción Type selecciona SMTP, y coloca en Outgoing Mail Server Port: 587, si no funciona prueba con 465.
      No olvides guardar los cambios y en la pantalla principal intentar nuevamente con Grant permission with Google para volver a pedir los permisos.

  5. ¡Bravo! Había dado muchas vueltas tratando de resolver este problema y siguiendo tus instrucciones ha sido súper sencillo. ¡¡Muchas gracias!!

Deja un comentario

El responsable de este sitio web es Diógenes Mata. La finalidad de los datos es gestionar los comentarios en este blog. El destinatario (donde se almacenan los datos) es el hosting de este blog: Banahosting, ubicado en EEUU. La legitimidad es el consentimiento que otorgas en el formulario. Tienes derecho a acceder, rectificar, limitar y suprimir tus datos según la política de privacidad.