Solucionar problemas de envío de correos en WordPress

Te enseño que hacer si WordPress no envía correos. Es un problema importante, ya que si no funciona el correo no funcionará tu formulario de contacto, ni tu listas de suscriptores, ni podrás cambiar la contraseña de tu usuario.

Test #1 - Comprobaciones 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 que tienes 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 tiene que 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 el pluguin no da pistas para solucionar el problema de envío de correos. La siguiente prueba es 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      = 'hola@example.org';
$subject = 'Prueba de correo';
$message = 'Es una prueba de envio de correo';
$headers = 'From: hola@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

Aprende más

Creative Commons License

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