Cómo solucionar el error SMTP de validación del certificado SSL en WordPress

Hoy quiero compartir un caso que me ha ocurrido para que no os suceda a vosotros. Un cliente me ha contactado y me ha avisado de que su formulario de contacto no funcionaba, es decir, no enviaba el correo electrónico que debía enviar. Tras muchas pruebas, en el log me he topado con el error SMTP: SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in… En este artículo os cuento cómo solucionar este error SMTP y las pruebas que he tenido que llevar a cabo para ello.

El caso

Como os he comentado antes, este cliente me ha indicado que su formulario de contacto desarrollado con el plugin Contact Form 7 llevaba un par de días sin funcionar. Lógicamente, lo primero que he pensado es que el cliente había tocado algo en la configuración del formulario que había provocado el mal funcionamiento del mismo. Una vez he entrado al admin de la web, he comprobado que la configuración estaba intacta, tal y como la dejé en su día. Osea, el cliente no había tocado nada.

He recordado que, para un mejor funcionamiento en el envío de correos, instalé un plugin al cliente que te permitía configurar una cuenta SMTP en el CMS. En el plugin, llamado WP SMTP, estaban definidos todos los credenciales necesarios para enviar correos electrónicos mediante la web. Lo mejor de todo esto es que, dicho plugin, cuenta con una función para hacer envíos de prueba. Era la función perfecta para descartar si el problema venía de la propia plataforma, o bien de la cuenta de correo…

Pues bien, he realizado un envío de prueba y he comprobado que, efectivamente, los correos no se enviaban de este modo tampoco. Además de no recibir el correo (evidentemente estaba realizando una prueba poniendo mi correo como destinatario), el plugin me ha avisaba de que había algo mal en la configuración que desataba el error SMTP.

error SMTP

Lo único que me quedaba por hacer era comprobar si los datos que había definidos en el plugin eran los correctos, y para mi desgracia sí que lo eran. Los datos SMTP que figuraban en la configuración de WP SMTP eran los mismos que aparecían en el panel de control del alojamiento del cliente.

Entonces, ya como última medida, se me ha encendido la bombilla y he revisado el log de errores de la aplicación. Para mi sorpresa ha aparecido un rastro, algo de lo que poder tirar del hilo, el error SMTP:

SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in…

Este error es debido a que PHP 5.6 introduce la verificación del certificado SSL. En mi caso, el servidor de correo que estaba utilizando el cliente es un servidor no certificado por ninguna empresa, de ahí el error. Y es que, según me he enterado más tarde, el proveedor de alojamiento había actualizado hace solo dos días la versión de PHP del hosting del cliente.

Ya tenía la causa del error SMTP, ahora solo quedaba ponerle solución…

Solución al error SMTP

Para solucionar este error, solamente tendréis que conectaros mediante un cliente FTP a vuestra web, y editar el archivo functions.php. Ya sabéis que el archivo functions.php se encuentra dentro de la carpeta del theme que estáis utilizando actualmente, es decir, /wp-content/themes/VUESTROTEMA.

Una vez localizado, editad el fichero y agregad este código al final:

add_action('phpmailer_init','send_smtp_email');
function send_smtp_email( $mail )
{
 // Indicamos que queremos enviar por SMTP
 $mail->isSMTP();
 
 // Definimos la ruta del host
 $mail->Host = "Host";
 
 // Indicamos que queremos enviar por SMTP
 $mail->SMTPAuth = true;
 
 // El puerto SMTP uele ser el 25, 465 o 587
 $mail->Port = "25";
 
 // Definimos el usuario de la cuenta de correo
 $mail->Username = "Usuario";
 
 // Definimos la contraseña de la cuenta de correo
 $mail->Password = "Contrasena";
 
 // Definimos el tipo de encriptación (none, ssl, tls)
 $mail->SMTPSecure = "none";
 
// Definimos la cuenta de correo desde donde queremos enviar el correo
 $mail->From = "[email protected]";

// Definimos el nombre que aparecerá públicamente
 $mail->FromName = "Nombre";
 
 // Este es el código necesario para solucionar el error SMTP
 $mail->SMTPOptions = array(
 'ssl' => array(
 'verify_peer' => false,
 'verify_peer_name' => false,
 'allow_self_signed' => true
 )
 );

}

Y hasta aquí nuestro artículo sobre cómo solucionar el error SMTP de validación del certificado SSL en WordPress. Espero que te haya gustado y, si te ha resultado útil, no dudes en compartirlo en redes sociales. El icono de la imagen destacada es obra de Arthur Shlain. ¡Nos leemos!

 

Dejar respuesta

Please enter your comment!
Please enter your name here