WordPress no envía correos… porque tu hosting no quiere

Gracias por darme amor compartiendo en tu app favorita:

Últimamente, desde el lanzamiento de WordPress 6.4.3 y desde el advenimiento de PHP 8 y superiores, me estoy encontrando problemas con este popular CMS. Un CMS que, aunque con una ligera tendencia a caer en cuento a su dominio de mercado, sigue siendo la plataforma hegemónica para desarrollar webs de empresas, sobre todo en el ámbito de la PYME y la empresa tradicional.

No hace mucho, por ejemplo, compré en ThemeForest la plantilla Motors, posiblemente una de las mejores, si no la mejor, de su sector, pero a la que PHP 8 le sentó como un tiro en el pie.

No hubo manera que la plantilla corriera sin problemas en un WordPress 6.4.3 que recomienda, para un correcto y normal funcionamiento, el uso de «al menos» la versión 8.0 de PHP.

La conclusión a la que llegué junto al soporte técnico de StylemixThemes, la empresa creadora, fue que para que corriese sin problemas tendría que usar la última versión disponible de PHP 7.

Pero usar PHP 7 en mi hosting favorito, léase PiensaSolutions, tiene un sobrecoste (o lo tenía en ese momento, hace un par de meses) de 8 euros al mes. ¡AL MES!

Si un hosting para una pequeña empresa junto a su dominio principal tiene un coste con protección de datos personales y antivirus/antispam de su buzón de unos 60 a 90 euros al año, eso supondría incrementar el gasto algo más de 100 euros anuales.

¡Por usar una versión decrapated de PHP!

Que la plantilla tenía un problema gordo era tan evidente como que justo cuando yo la compré empezó a lanzar actualizaciones casi semanales. Había momentos en que incluso había varias actualizaciones durante una misma semana.


El nuevo problema: wp_mail() no furula

Hace años que utilizo PiensaSolutions como hosting, tanto para mis proyectos como para mis clientes. Son eficientes y son de la piel del toro. Algo que me evita -al menos en teoría- ciertos problemas con la LOPD, la LSSI y todas las normativas europeas derivadas.

Al menos, en teoría.

Nunca había tenido problemas con un Contact Form 7, para mí mi plugin favorito junto a Flamingo para gestionar formularios de contacto, solicitud de presupuesto y un largo etcétera de utilidades. Es de una simpleza, sencillez y ligereza digna del semblante japonés de su autor, Takayuki Miyoshi, quien además tiene en la tienda de plugins un complemento que es perfecto, Flamingo, que guarda un registro de contactos y correos procesados por CF7.

Pero CF7 utiliza wp_mail().

Y wp_mail() necesita ciertas configuraciones vinculadas a un servidor SMTP a través de los parámetros smtp (normalmente como localhost) y smtp_port (normalmente el 25) en PHP.ini.

Además de utilizar la librería PHPmailer.

Pero por alguna razón en el servicio Hosting WP de PiensaSolutions, un hosting para WordPress gratuito para toda la vida, según su publicidad, algo en esta cadena de necesidades no está disponible.

Desde luego entre las extensiones no aparece mail ni mailer ni nada de nada. No aparece entre las listadas, ni siquiera como desmarcada, algo que sí pasa con imageck, que sí que aparece, pero desactivada, lo que no permite a WordPress comprimir las imágenes por cierto y sobrecarga los tiempos perjudicando el SEO, pero eso es otra historia.

Puede incluso que la función mail() también esté desactivada o anulada o vete tú a saber, porque al fin y al cabo smtp y smtp_port están configurados como se supone que están configurados por defecto en cualquier instalación.

En fin, sea como fuere, y por lo que he estado leyendo en múltiples hostings, no es algo que afecte exclusivamente a mi proveedor favorito. Todos los grandes parecen seguir el mismo camino para, supongo, evitar que las webs se conviertan en propagadores del mal… en otras palabras… que hagan un envío masivo de correos electrónicos no controlados, lo que deriva que el servidor, en general, sea etiquetado como inseguro a causa de ese spam.

El soporte técnico me recomendó contratar un servicio de correo básico gratuito por un año. A lo que yo le añadí un servicio antivirus y antispam. No sirvió para nada.

Luego, en una segunda ronda de chateos interminables me recomendó actualizar a la última versión de PHP, la 8.3, lo que tampoco solventó nada.

Parece que si yo estaba desorientado con este tema, mi querida ingeniera y asistenta virtual en PiensaSolutions también lo estaba.

Al final, ya que había contratado ese servicio de correo electrónico básico gratuito por un año, acabé por instalar WP Mail SMTP de WPForms que permite usar un servidor SMTP externo a tu servidor web configurando el nombre del servidor SMTP, su puerto, su seguridad, el email y una contraseña.

Y listo.

Pero no me gusta naaada ese plugin. Pero naaada.

No porque no funcione. Sus más de 3.000.000 de instalaciones y sus casi 5 estrellas de valoración corroboran su calidad y su funcionalidad.

Lo que no me gusta es que WPForms es de esas empresas de desarrollo que te dan un poquitito gratis, justo lo que necesitas, para luego llenar tu instalación de WordPress de publicidad para que contrates la versión PRO.

Pero la versión PRO yo no la quiero, para nada.

Pero ellos dale que dale.

Es meter mucho texto (mucho código) innecesario en una instalación para solucionar un problema sencillo.

Un problema que no existiría si PiensaSolutions (o el hosting de turno) no capara la extensión mail, obviamente.

Así que si tienes ese problema en tu 1and1, Hostinger, DreamHosting o que sé yo, es posible que a tu WordPress o le pase nada ni tampoco a tu Contact Form 7 ni tan siquiera a la plantilla que compraste.

Lo más probable es que el proveedor te haya capado parte de las funcionalidades de PHP aunque cuando compraste el servicio no te dijese nada.

Porque cuando pagas no te lo dicen.

Total, serán 4 gat@s los que se encuentren con este problemita.

Llegados a este punto de desesperación te recomiendo que hagas una prueba: accede a tu URL de wp-admin y prueba a «recuperar contraseña». ¿Te da un mensaje de error tipo «puede que tu instalación no tenga configurado el envío de emails» o similar?

Si es así, no pierdas más el tiempo.

Instala el maldito WP Mail SMTP y traga.

(Odio perder el tiempo en cuestiones simples que dejan de funcionar… porque sí.)