Solucionar problemas de envío de correos en WordPress

Que no funcione el envío de correos en WordPress es un problema importante, ya que en esta situación no funcionarán los formulario de contacto, de compra, las listas de suscriptores, ni tampoco podrás recuperar la contraseña de WordPress.

Si sospechas que el envío de correos no funciona puedes tratar de encontrar el problema realizando unas pruebas.

Test #1 - Comprobar el envío de correo con un plugin

Es la forma más fácil de comprobar el funcionamiento. Instala el plugin Check Email que está en el repositorio público de WordPress.

El funcionamiento es sencillo. Tras activarlo, encontrarás un nuevo menú llamado Check Email dentro del menú herramientas (Tools).

Aquí encontrarás la configuración para sendmail establecida en el php.ini. Sucede que a veces este valor esta en blanco. Si es tu caso, tienes que contactar con el servicio técnico para que corrijan la configuración PHP.

Para la mayoría de alojamientos el valor que debe tener es:

/usr/sbin/sendmail -t -i

Por último puedes hacer un envío de prueba. Si algo va mal, tendrás más información para averiguar cuál el problema.

Y si todo esta correcto, verás una confirmación como esta:

Test #2 - Prueba de envío con PHP

Si los resultados del plugin no dan pistas para solucionar el problema de envío de correos prueba a realizar un envío usando PHP.

WordPress utiliza PHPMailer para enviar correos y aunque con esta librería es posible enviar correo a través de un servidor SMTP, por defecto utiliza la configuración establecida en el fichero de servidor php.ini para el envío a través de sendmail.

O dicho de otro modo, para probar el funcionamiento del envío de correos en WordPress basta con probar la función mail() de PHP.

Crear en el alojamiento un fichero llamado prueba.php con este contenido:

<?php
/* probando el envío de correo */

$to      = 'prueba@example.org';
$subject = 'Prueba de correo';
$message = 'Es una prueba de envio de correo';
$headers = 'From: prueba@example.org' . "\r\n" .
           'X-Mailer: PHP/' . phpversion();

$success = mail($to, $subject, $message, $headers);
if (!$success) {
	echo "algo fue mal";
} else {
	echo "enviado";
}

?> 

Cambia los datos del ejemplo por tu dirección de correo y para hacer un envío usa tu navegador web para cargar el fichero de prueba, por ejemplo: http://example.org/prueba.php.

Si ambas pruebas indican que el correo funciona bien pero no llegas a recibir el mensaje (revisa la carpeta de spam), posiblemente el problema esté en el servidor de correo.

Es tu soporte técnico el que puede revisar lo que sucede. De ahí la importancia de elegir un buen proveedor. Pueden ser varias cosas:

  • Configuración php.ini incorrecta - Una ruta sendmail incorrecta o un bloqueo de la función mail() de PHP son los problemas más frecuentes.
  • Error en el servidor de correo - Los registros del servidor de correo darán más información sobre el problema.
  • Bloqueos de IP - Puede que la IP de tu servidor este filtrada en una lista negra o que no la hayas incluido como IP autorizada para el envío de correos en el registro SPF de las DNS.

Muchos proveedores limitan el uso de envío de correos desde el servidor para evitar el spam, por eso siempre es recomendable configurar un servicio SMTP externo para el envío de correo desde WordPress.

César Maeso

Lecturas recomendadas

Creative Commons License

Esta obra está bajo una licencia de Creative
Commons Reconocimiento-NoComercial-CompartirIgual
4.0 Internacional
.