Oferta SiteGround Black Friday

Si WordPress no manda emails ¿cómo solucionarlo?

En ocasiones, casi siempre debido a las configuraciones del servidor, WordPress no puede enviar emails, y no recibes correos electrónicos de administración y, lo que es peor, tus formularios de contacto y demás plugins útiles, no pueden enviar emails de los nuevos registros, por ejemplo.

Normalmente, cuando ves un mensaje de error suele ser de este tipo:

The email could not be sent.
Possible reason: your host may have disabled the mail() function.

Esto, en el caso de los formularios es especialmente grave, pues si no tienes otro sistema de guardar los envíos pierdes totalmente el rastro y registro de los envíos, y además el usuario recibe un mensaje de que no se pudo enviar su formulario.

email marketing WordPress

Como decía antes, esto casi siempre es debido a la configuración del servidor, que no permite el uso de la función PHP ()mail para el envío de correos electrónicos, que es la que usa WordPress en realidad con la función WP_mail().

También, en ocasiones, puede ser debido a que los proveedores de servicio de email usan sistemas anti spam que no admiten envíos directos desde una aplicación, y claro, bloquean a WordPress como tal.

En cualquier caso, y esto apúntatelo como norma, casi nunca es recomendable usar WordPress y PHP para mandar los emails, y nunca en el caso de newsletters, en cuyo caso entrarías a formar parte de las listas mundiales de spammers en cuestión de días.

Vale, pero entonces …

¿Cómo mando emails desde WordPress sin usar PHP?

email wordpress

Bueno, pues afortunadamente es bastante fácil, yo te recomiendo principalmente dos métodos.

1. Enviar emails desde WordPress mediante SMTP

Aunque te parezca algo marciano en realidad está chupado usar los servidores SMTP de GMail, Yahoo y otros para enviar los correos electrónicos de WordPress, en definitiva sustituir la función PHP mail() por un servidor SMTP, en este caso de tu servicio de email favorito.

Y lo mejor es que no hace falta que hagas virguerías, hay un montón de plugins para que sea coser y cantar:

  • WP mail SMTP: Un veterano pero que funciona a la primera. Simplemente indicas los datos de conexión de tu servidor SMTP y guardas los cambios. Si lo deseas puedes enviar un email de prueba. La única pega es que lleva un tiempo sin actualizarse, pero funcionar funciona.
  • Easy WP SMTP: Prácticamente igual que el anterior, se configura igual y permite también enviar emails de prueba. Es mejor que, si dudas, uses este pues al menos está actualizado al día.
  • Easy SMTP Mail: Otro que te costará distinguir de los anteriores. Hace lo mismo, lo hace igual. La decisión entre cualquiera de estos es cuestión más de gustos de la interfaz que otra cosa. Yo elegiría el anterior, básicamente porque se actualiza más y hay más instalaciones que lo avalan, pero si te gusta funciona igual de bien.
  • Mail Bank: A pesar de su interfaz horrible reconozco que este plugin es un fenómeno. Además de sustituir fácilmente el uso de PHP por SMTP también te permite usarlo como conmutador de tipo de servidor de email. Por lo demás funciona como los anteriores y también tiene utilidad para hacer envíos de prueba.
  • WP SMTP: Mira, este se sale un poco de la norma, y aporta algo más. Sí, funciona como el resto, pero te facilita la vida a la hora de configurar los más conocidos servicios de email como GMail, Yahoo, Live, QQ o 163. Solo tienes que hacer clic en el icono correspondiente al servicio y la configuración del servidor es automática, a falta de tu usuario y contraseña. Si no usas uno de estos servicios no hay problema, puedes modificar todos los campos de cualquiera de ellos y poner tu propio servidor SMTP.
  • GMail SMTP: Este plugin, aunque más básico que los anteriores, pues de hecho solo funciona con cuentas de GMail, puede ser una solución rápida y simple para muchos usuarios. En vez de introducir los datos de configuración manualmente te conectas con tu cuenta de GMail desde los ajustes del plugin mediante OAuth para pedirle permiso a Google, como harías con cualquier servicio web. No sustituye completamente la función WP_mail() de WordPress sino que la utiliza pero cambiando el servidor de envío de correo, en este caso el de Google.

Por si no lo sabes, la configuración SMTP de los principales servicios de email, que te servirá para cualquiera de estos plugins, es la siguiente:

WordPress smtp email

Gmail:

  • Servidor SMTP: smtp.gmail.com
  • Tipo de encriptación: SSL
  • Puerto SMTP: 465
  • Usar autentificación SMTP

Yahoo:

  • Servidor SMTP: smtp.mail.yahoo.com
  • Tipo de encriptación: SSL
  • Puerto SMTP: 465

Hotmail:

  • Servidor SMTP: smtp.live.com
  • Tipo de encriptación: TLS
  • Puerto SMTP: 587

Además de eso ya solo te falta tu usuario y contraseña, que eso solo lo sabes tu (espero). Lo bueno es que vale cualquier cuenta de correo.

* Nota – Si Google bloquea el acceso a WordPress

En ocasiones es posible que Google bloquee el uso de WordPress para enviar correo, en cuyo caso te avisa de que ha habido un intento de usar GMail desde un dispositivo desconocido (¡es WordPress, so gilipollas de Google!).

Solucionarlo es fácil. Solo tienes que ir a tu cuenta de Google y, en la configuración de seguridad, en la sección de «Aplicaciones y sitios conectados«, activar el uso de aplicaciones menos seguras (sic).

permitir uso aplicaciones menos seguras Gmail

2. Enviar emails desde WordPress con Mandrill

funcionamiento de mandrill

Mandrill es de la misma gente que está detrás de MailChimp, por si no lo sabías, y ofrece una API para envió de emails desde webs y aplicaciones.

Solo tienes que registrarte y ya puedes enviar hasta 2.000 emails gratis, lo que para este uso del que estamos hablando es más que de sobra, salvo webs especiales donde haya miles de registros y mensajes mensuales claro, para eso ya hay que pagar.

Se usa como cualquier aplicación, y ofrece estadísticas, gestor de emails y hasta aplicaciones para móviles, de todo.

Pero para lo que a nosotros nos interesa, también tiene plugin para WordPress, wpMandrill. Lo instalas, lo activas y te pasas por la pantalla de ajustes para incluir la clave API de tu cuenta de Mandrill (previamente creada, por supuesto) y a correr.

Además de poder configurarlo a tu gusto también ofrece estadísticas desde el escritorio de WordPress. Básicamente reemplaza WP_mail() por la API de Mandrill y funciona de coña.

¡Ea, ya está!

¿Sabes algún modo más de hacerlo?

Si sabes algún modo más de hacerlo ya tardas en compartirlo en los comentarios, como siempre.


(Nota: por si no te has dado cuenta algunos de los enlaces que hay en esta entrada son de afiliación, de modo que si adquieres algún producto a ti te cuesta lo mismo pero a mi me invitas a un café) 

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 4.8 / 5. Total de votos: 30

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te funciona? pues entonces no he dicho nada :)

Sobre el autor

19 comentarios en “Si WordPress no manda emails ¿cómo solucionarlo?”

  1. También se puede hacer manualmente utilizando el gancho phpmailer_init

    Algo como esto:

    add_action( ‘phpmailer_init’, ‘mi_smtp_personalizado’ );
    function mi_smtp_personalizado( $phpmailer ) {
    $phpmailer->isSMTP();
    $phpmailer->Host = ‘smtp.gmail.com’;
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 587;
    $phpmailer->Username = ‘[email protected]’;
    $phpmailer->Password = ‘tucontraseña’;

    // Ajustes adicionales
    $phpmailer->SMTPSecure = «tls»; // Elige SSL o TLS, si tu servidor lo require
    $phpmailer->From = «[email protected]»;
    $phpmailer->FromName = «Tu nombre»;
    }

    Para los que no lo saben este código hay que meterlo en el archivo functions.php del tema activo

  2. Cristopher GMartell

    Me ha pasado que me envían un correo desde el formulario y me llega a un correo con dominio propio, pero a uno de hotmail no, ¿alguna idea de porqué pasa eso?

      1. Cristopher GMartell

        No es cosa mia, es el correo del cliente ya le he comentado que el culpable es Hotmail, (parece no interesarle mucho).

  3. Yo utilizo Feedburner para que la gente se suscriba a mi web y le envíe un mail cada vez que inserto un post.
    ¿Qué opináis de Feedburner?

      1. Gracias Fernando.
        Entonces ¿Cómo lo haces tu actualmente?
        Porque yo recibo mails cada vez que se publica algo en ayudawp.com

  4. He usado el WP mail SMTP en una ocasión y funcionó a la primera. Gracias por la info. Me apunto el resto por si los necesitase algún día.

    1. Yo en una web (www.perdonna.es) tenía wp mail SMTP, pero en una actualización dejó de funcionar (no se si por la configuración del servidor, lo tengo en Alojalia, o simplemente que se daño el plugin), y tuve que adaptar el código de Said, ya que el problema lo tenía en la configuración de SSL (y el plugin no incluye esta configuración). El código que uso es:

      add_action(‘phpmailer_init’,’send_smtp_email’);
      function send_smtp_email( $phpmailer )
      {
      // Define que estamos enviando por SMTP
      $phpmailer->isSMTP();

      // La dirección del HOST del servidor de correo SMTP p.e. smtp.midominio.com
      $phpmailer->Host = «mail…..»;

      // Uso autenticación por SMTP (true|false)
      $phpmailer->SMTPAuth = true;

      // Puerto SMTP – Suele ser el 25, 465 o 587
      $phpmailer->Port = «587»;
      $phpmailer->SMTPOptions = array(
      ‘ssl’ => array(
      ‘verify_peer’ => false,
      ‘verify_peer_name’ => false,
      ‘allow_self_signed’ => true
      )
      );

      // Usuario de la cuenta de correo
      $phpmailer->Username = «….»;

      // Contraseña para la autenticación SMTP
      $phpmailer->Password = «….»;

      // El tipo de encriptación que usamos al conectar – ssl (deprecated) o tls
      $phpmailer->SMTPSecure = «tls»;

      $phpmailer->From = «….»;
      $phpmailer->FromName = «….»;
      }

  5. GARCIA BENITEZ CARLOS ALEJANDR

    Buen día. Acabo de actualizar mi WordPress a la versión 4.5.3 y desinstale por error el wp mail smtp. Ahorra no puedo acceder a mis cuentas de correo por medio de Outlook, me arroja un error de autentificación. Habrá tenido algo que ver? Es importante mencionar que si puedo acceder a las cuentas desde webmail.

  6. Hola
    Antes de aplicar esta solución, ¿Hay alguna manera de recuperar las direcciones de correo que no han llegado debido a este problema del formulario incorporado en DIVI?

  7. Gonzalo de la Maza

    Muchas gracias Said!! Creo que este código me ha salvado la vida.

    ¿Sabes qué códigos habría que usar para Outlook y otros habituales? Lo digo por prevenir ante futuros problemas.

    un saludo!!

  8. Estimados. Necesito ayuda. Recibo registros de usuarios spam y ni siquiera un captcha los detiene. Como puedo hacer para que confirmen su registro a travez de un link?
    o Tienen idea de que podria hacer?
    Desde ya muchas gracias.

  9. Hola, como administrador recibo un correo cuando alguien se registra. Pero al que nunca le llega la confirmación del registro es a los usuarios…. Esto significa que el sistema de envios no está bloqueado, ¿Habrá alguna opción que deba activar o desactivar?

  10. Hola,

    tengo un problema con este tema. Tenía un dominio que lo utilizaba como externo en mi hosting. Funcionaba correctamente, formulario Contact 7 envía bien los formularios. Pero al traer el dominio a mi hosting, la web funciona bien pero he visto que el Formulario no deja enviar las consultas diciendo que el mensaje no ha podido enviarse ( tal como tengo como mensaje si hay fallo de envío de servidor). El correo del dominio lo pude recuperar el mismo y veo que funciona xq recibe correos (el mismo correo misma contraseña). Pensando que el problema podía ser tema SMTP utilizo el plugin comentado en artículo WP Mail SMTP, relleno los datos e incluso hago envío correo de prueba y veo que llega a destinatario. Perfecto. Pero pruebo con el formulario y le sigue dando el mismo problema. He utilizado otro plugin, el Easy, pero igual. Que raro. A ver si me puedes decir alguna solución que se me escape, los del hosting me dicen que todo ok, he mirado PHP versión pero nada. Ya no se me ocurre que puede ser, y sería una lástima perder el correo del dominio. Espero alguna respuesta si puede ser, agradecido por esto y por compartir tus conocimientos. Un Saludo.
    Joan Q.

Deja un comentario

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

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio