• Saltar al contenido principal
  • Saltar a la barra lateral principal

tatBlog

Un cuaderno de apuntes libres

Formularios web en WordPress que no envían aunque parece que si

Publicado el 18 septiembre 2014 por tat 5 comentarios

Me ha pasado recientemente que un formulario web instalado en la página de un cliente no enviaba los correos con el formulario rellenado a pesar de que al remitente le indicaba que si. Jamás llegaban al destino.

He tenido que investigar el asunto y lo comparto aquí por si a alguien más le pasa.

El caso es que WordPress utiliza una función llamada phpmailer para enviar los mails mediante protocolo SMTP. En ocasiones la configuración de esa función no coincide con la que nuestro servidor de hosting exige para poder usar su servicio de correo con lo que el sistema no funciona. Esto se puede deber a varios motivos.

Existen algunos plugins paraWordPress que nos pueden ayudar con este asunto pero instalar un plugin cada vez que tenemos un problema puede sobrecargar demasiado nuestro sitio web, con la consiguiente penalización en el posicionamiento en buscadores (el tiempo de carga es un factor fundamental en el SEO).

Por ello vamos a optar por una solución más eficiente que es la de incluir un código en el fichero functions.php de nuestro tema de WordPress.

Tenemos dos posibles situaciones de partida: que estemos usando un tema de WP o bien un tema hijo (child theme).

En el primer caso simplemente debemos (mediante un cliente ftp) buscar el fichero en /wp-content/themes/nombredeltema/functions. php en nuestra instalación de WordPress, descargarlo y editarlo con un editor de texto para añadirle el código que veremos más adelante.

En el segundo deberemos crear un nuevo fichero funtions.php desde cero, que después se sumará al del tema padre automáticamente, y subirlo a nuestra carpeta con el tema hijo en /wp-content/themes/nombredeltemahijo/

Vamos con el código donde deberás sustituir tus datos el texto que aparece en rojo:

add_action(‘phpmailer_init’,’send_smtp_email’);
function send_smtp_email( $phpmailer )
{
// Especifica que se va a enviar usando el protocolo SMTP
$phpmailer->isSMTP();

// La dirección SMTP suministrada por tu hosting
$phpmailer->Host = «smtp.tudominio.com«;

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

// Puerto SMTP – Te lo indica tu hosting en las configuraciones del correo
$phpmailer->Port = «25«;

// Nombre del usuario de la cuenta de correo que va a usar el formulario
$phpmailer->Username = «nombre del usuario«;

// Contraseña del usuario del correo
$phpmailer->Password = «contraseña«;

// El tipo de encriptación usada – ssl (deprecated) o tls
$phpmailer->SMTPSecure = «tls«;

//Aquí van los datos con los que se firmará el envió para que los identifiques en tu buzón cuando lleguen
$phpmailer->From = «tucuentadecorreo@dominio.com«;
$phpmailer->FromName = «Nombre que quieres que aparezca como remitente«;
}

Si estás creando el fichero php desde cero (para un tema hijo, recuerda) no olvides abrir el documento con un <?php y cerrarlo con un ?> , si no la web se quedará en blanco y estarás al borde del infarto.

Si se trata de un tema normal simplemente añáde el código al final del documento original justo delante del ?>

Publicado en: Software, web, WordPress Etiquetado como: server, Software libre, WordrPress

Interacciones con los lectores

Comentarios

  1. iqudoblev dice

    13 noviembre 2014 a las 4:42 pm

    no funciona no llegan los mails de ninjaforms

  2. tat dice

    18 noviembre 2014 a las 12:28 pm

    No conozco ninjaforms así que supongo que o se debe a una incorrecta configuración del plugin o a que este no usa phpmailer.

  3. 5d2 dice

    19 diciembre 2014 a las 1:19 pm

    Tengo alojado mi sitio en un hosting con restricciones. Instale contactform 7 que siempre me ha funcionado de maravillas, pero con las restricciones de hosting no funciona.
    De la empresa de hosting me dijeron que usara phpmailer y no iba a tener problemas.
    Es posible que tu ejemplo funcione bien considerando lo que te comento?
    Muchas gracias

  4. tat dice

    30 enero 2015 a las 8:39 am

    Si, yo creo que por ahí van los tiros. A ver si hay suerte.

Trackbacks

  1. Solucionar problemas con el envío de formularios en WordPress | WordPress para pymes dice:
    17 marzo 2015 a las 8:35 pm

    […] Parece ser que algunos servidores de hosting presentan un problema ante la configuración básica de esta función. A continuación os ofrecemos un artículo en donde se ofrece una solución a dicho problema de envío de formularios. […]

Deja una respuesta

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

Barra lateral principal

I support free software

Blogroll

  • 3yMedia Com. Dig.
  • Curriculum profesional
  • Foros de fotolibre.net
  • LiberTat
  • Radio FotoLibre

Temas en tatBlog

Android Creative Commons Debian Fotografia GNU/Linux Movil Opinion podcast Seguridad Software Ubuntu Uncategorized web WordPress

Creative commons BY SA - tatBlog 2016