El objetivo
Configurar una cuenta de Google Mail en un portal sobre el gestor de contenidos Joomla! 1.5.12 para el envío de correo electrónico desde un formulario de contacto.
El problema
El formulario devuelve un "Error SMTP: No se puede conectar con el servidor SMTP". Finalmente se detectó que hay un problema de disponibilidad de los protocolos de seguridad (SSL o TLS) requeridos para la conexión SMTP a Google Mail.
Solución
Esta es la solución aplicada, en mi caso, encontrada en el foro JoomlaSpanish.org, tras una búsqueda por la red de diversas opciones.
Si tu servidor web es local deberías de abrir el puerto de sailda 465 ó 587 (y dependiendo del que abras, ese mismo indicarás en la configuración del servicio de correo en Joomla!).
Si tienes un servidor de alojamiento remoto, contratado en un servicio externo sobre un sistema LAMP (Apache y PHP), deberías de asegurarte que en Apache está activo el módulo SSL_module y cargadas las extensiones php_curl, php_openssl, php_smtp y php_pop3 para PHP.
En caso de un servidor propio en local debes descomentar las líneas que activan estos módulos. En este caso un sistema EasyPHP sobre un Windows Server.
Archivo de configuración Apache:httpd.conf
[...]
LoadModule ssl_module modules/mod_ssl.so
[...]
Archivo de configuración PHP:php.ini
[...]
; Windows Extensions
[...]
extension=php_curl.dll
extension=php_openssl.dll
extension=php_pop3.dll
extension=php_smtp.dll
[...]
En Joomla! debes activar la extensión Authentication - GMail, en la ruta del panel de control Extensiones » Gestor de plugins.
Y especificar en Joomla! la configuración del servidor de correo/SMTP, en la ruta del panel de control Configuración global » Servidor » Servidor de correo/SMTP los datos de la cuenta de Google Mail, tal cual se indican:
Programa de correo: Servidor SMTP Dirección del remitente: [cuenta GMail] Nombre del remitente: [un nombre] Ruta para Sendmail: /usr/sbin/sendmail Autenticacion SMTP: Sí SMTP Security: SSL SMTP Port: 465 [*] Usuario SMTP: [cuenta de correo GMail, incluido @gmail.com] Contraseña SMTP: [contraseña de la cuenta GMail] Servidor SMTP: smtp.gmail.com
* En un servidor alojado en local, si el puerto abierto en el router es el 587 entonces debemos indicar aquí el puerto 587.
** Obviamente, se parte de la base que se dispone de cuenta en Google Mail y que se pretende usar desde Joomla!

9 comentarios:
Interesante; yo uso php para el correo en joomla, pero sí que tiene esa opción que podría configurar. Me lo apunto por si un día cambio a una cuenta de gmail, ¡un abrazo!
muchas gracias !!! finalmente funciona!!
encantado de ser de ayuda! :)
Master, por fin pude enviar un mail a traves del formulario de Contactos de Joomla con los consejos que das en esta post, la única diferencia que yo solo habilité 2 librerias de PHP, la:
extension=php_curl.dll
extension=php_openssl.dll
Con ambas funciona de maravilla el envío usando Gmail.
Saludos y nuevamente gracias por la luz.
Atte.
Fabian Donoso
Stgo - Chile
Encantado de ser útil Fabian :)
Buenos datos!, conocen algun hosting gratis que permita envio smtp para usar con joomla?, se que es pedir mucho pero no puedo pagar aún, por lo menos por el primer año.
Gracias de antemano!
No se me ocurre ninguno para recomendarte. Además, que tu hosting tenga filtrado la conexión SMTP a servidores remotos, no alojados dentro de su propia red, es algo que no suelen nunca informar sino algo que te encuentras luego de contratar y hacer las primeras pruebas. Cualquier que sea la opción que escojas, pregúntalo primero y asegúrate, no te vayas a llevar una sorpresa.
En caso de usar servidor SMTP propio casi siempre tengo que cambiar la línea:
$mail->setSender( array( $email, $name ) );
Por las líneas:
$mail->setSender( array( $MailFrom, $name ) );
$mail->addReplyTo( array( $email, $name ) );
En:
./components/com_contact/controller.php
¡No olvidar! Que cada vez que me pasa tengo que volver a buscar la solución. ¡Argh! :)
buen tutorial gracias ;)
Publicar un comentario en la entrada