Enviar correos en GoDaddy con Windows y PHP
En múltiples ocasiones había tenido la oportunidad de implementar sitios web con formularios de contacto en GoDaddy sin inconvenientes, pero en uno de los últimos sitios que he desarrollado se presentó un problema que me iba dando bastante trabajo para averiguar el porqué no enviaba un email desde el formulario de contacto, algo que en condiciones normales haría.
Todo empezó, como comento arriba, con un formulario de contacto que no enviaba los respectivos mensajes y con el sistema gestor de contenidos Joomla (bastante conocido por todos); cabe aclarar que no acostumbro usar el sistema de formularios de contacto que Joomla trae por defecto, pero nunca había tenido problemas con él, así que ahí empezó la odisea.
Al principio, pensé que el servicio de email de GoDaddy estaba caído o algo así, así que esperé un poco y nada sucedió, por lo tanto, decidí escribir al servicio de soporte de GoDaddy y la respuesta que dieron fue algo plana y sin mayor explicación: todo está funcionando bien. Así que pensé que tal vez había tenido errores a la hora de subir el gestor de contenidos (porque como indiqué, nunca había tenido problemas con los formularios en GoDaddy). Y volví a hacer las pruebas y: Nada. Revisé la información de la función phpinfo() de PHP y vi que todo estaba bien excepto por una cosa: Se me había pasado por alto ver el sistema operativo del plan que mi cliente había adquirido: Microsoft Windows Server.
No es que considere a Windows un mal sistema operativo, sino que es bastante problemático a la hora de hacer las veces de servidor (y creo que en el escritorio pasa algo parecido), así que asumí que la función mail de PHP no estaba habilitada en el paquete, así que decidí probar con otra opción: Sendmail, y para ello para de una vez por todas terminar con el problema escribí a GoDaddy para que me indicaran la ruta de Sendmail para ejecutarlo desde el script y poder enviar los correos (la ruta por defecto en Linux es /usr/sbin/sendmail y por obvias razones esa ruta no funciona en Windows); la respuesta por parte del servicio al cliente fue bastante odiosa: Utilice los formularios prediseñados de GoDaddy!!! Cómo? cómo es posible que un proveedor como GoDaddy esté dando respuestas de ese estilo? en fin, respiré profundo y ponerme manos a la obra, ya que nunca un formlario de contacto me había tomado tanto tiempo.
Seguí investigando, y encontré en la configuración de phpinfo que GoDaddy usaba en Windows el sistema SMTP con una URL bastante particular y decidí probar suerte con la configuración por SMTP:
Mailer: SMTP Server
Mail from: miemail@miservidor.com (Acá va un email DEBE existir en GoDaddy)
From Name: VCS (Nombre de la compañía, a decir verdad, cualquier cosa está bien)
Sendmail Path: /usr/sbin/sendmail (Este dato es totalmente irrelevante)
SMTP Authentication: No
SMTP Security: None
SMTP Port: 25
SMTP Username: email@miservidor.com (lo mismo que arriba)
SMTP Password: (Vacío, no se debe escribir nada)
SMTP Host: relay-hosting.secureserver.net
Y voilà, ha funcionado. No es por nada pero definitivamente esta odisea hubiese sido evitable si el equipo de GoDaddy me hubiese indicado desde un principio que en los planes con Windows solo funciona SMTP y me hubieran dado la URL (que por cierto, tuve que averiguarla manualmente).
En conclusión, GoDaddy puede ser un proveedor de hosting muy popular pero tiene múltiples restricciones de un tipo u otro que sea por seguridad o sea por negligencia hacen difícil la labor de desarrollo web. Por ahora he recomendado a mis cliente un servicio que he probado y ha sido excelente, y que he direccionado a: http://virtual-consulting.duoservers.com/ pruébenlo y me cuentan.
Espero haberles ahorrado trabajo, y por último agrego que lo anterior también aplica para las implementaciones en el lenguaje ASP y ASP.Net.
febrero 24th, 2010 at 2:52 PM
Hola, que tal muy buen artículo, estamos con el mismo problema pero no encuentro en donde configurar lo que se pone ahi.
Les agradecería mucho si me pueden indicar donde.
Gracias.
febrero 24th, 2010 at 5:11 PM
@Roberto
En la Configuración global (Global configuration) del administrador de Joomla ( http://url_de_su_servidor/administrator/index.php?option=com_config ) en la pestaña Servidor (Server)
Saludos.
febrero 25th, 2010 at 10:17 AM
Gracias por la respuesta, pero estoy trabajando en Dreamweaver, podrían ayudarme en ese caso?
saludos.
febrero 25th, 2010 at 10:40 AM
El artículo resuelve un problema que se presenta en los hostings con GoDaddy que usan sistema operativo Windows, y que en mi caso sucedió con el Sistema gestor de contenidos Joomla. Si está usando Dreamweaver me hace pensar que no está usando un CMS (Gestor de Contenidos), en ese caso la solución está en usar un script que envíe por SMTP (recomiendo PHPMailer).
Saludos y éxitos.
abril 5th, 2010 at 1:52 AM
Excelente, esa era la información que necesitaba, el Server SMTP
de GoDaddy llamado relay-hosting.secureserver.net
junio 23rd, 2010 at 8:11 PM
Yo seguí http://www.vertutoriales.com/index.phpphp/tag/php/ y sirvio
junio 25th, 2010 at 11:22 AM
heyyyyyyyyyyy man que buen aporte muchas gracias, la verdad llevaba semanas tratando de configurar esto, la verdad no me gusta para nada el servicio de hosting de godaddy y menos en windows te trae muchos inconvenientes, en fin gracias a usted he resuelto mi problema muchas gracias
julio 24th, 2010 at 11:50 AM
Hola gracias por la explicacion he tenido el mismo problema y esto es lo mas cercano que he encontrado para solucionarlo, sin embargo no me queda muy claro cuando dices: “…asumí que la función mail de PHP no estaba habilitada en el paquete, así que decidí probar con otra opción: Sendmail”, puesto que en un principio probe con la funcion mail pero no funciono, tambien el hosting lo tengo en windows, pero mi pregunta es: sendmail es una clase como phpmailer o algo asi porque tambien intente con esta ultima y no funciono. si es asi donde puedo conseguit el script? agradeceria mucho su colaboración.
julio 26th, 2010 at 11:10 AM
Sendmail es un servicio para envío de correo en plataformas Unix/Linux (y si no estoy mal también Mac. Más info en: http://www.sendmail.org/ y http://es.wikipedia.org/wiki/Sendmail
julio 27th, 2010 at 9:08 AM
ok gracias lo chekeare
enero 19th, 2011 at 10:32 AM
Estimado amigo:
tengo el mismo problema que tu ya que quiero anexar un formulario pero la verdad es que soy neofito en el asunto tu mencionas en el articulo que hay diseños de formularios prediseñados con godaddy me podrias decir como encontrarlos y que configuraste phpinfo que GoDaddy usaba en Windows el sistema SMTP con una URL bastante particular y decidí probar suerte con la configuración por SMTP. me podrias decir donde encontrar esto soy neofito en el asunto
gracias y saludos y excelente aporte
febrero 20th, 2011 at 5:21 PM
Despues de dos dias de busqueda y varias pruebas al fin, la solución la encontré en ingles.
A mi me funciono esto en joomla 1.5.22 español, servidor godaddy, hosting windows y correo de godaddy.
-Programa de Correo: Servidor SMTP.
-Dirección del Remitente: tucorreo@HostingDeGodaddy.com
-Nombre del remitente: Nombre Sitio Web.
-Ruta para Sendmail: /usr/sbin/sendmail
-Autenticacion SMTP: No.
-SMTP Security: Nada.
-SMTP Port: 25.
-Usuario SMTP: (vacio).
-Contraseña SMTP: (vacio).
-Servidor SMTP: relay-hosting.secureserver.net
Link fuente original:
http://forum.joomla.org/viewtopic.php?p=692344
Espero les sirva de algo, me dejan saber. Dios les bendiga!!!
mayo 11th, 2011 at 2:45 PM
hola a todos, veo un buen articulo y tengo el mismo problema y espero me puedan ayudar… yo tengo mi servidor en godaddy, en LINUX, lor lo que veo esto del servidor SMTP solo funciona con windows es asi??… por favor ahyudenme, no puedo enviar correos de mi joomla 1.5.22 a correos yahoo… dentro tengo montado mi jomsocial.. el registro que se hace en el registro de jomsocial no acepta cuentas yahoo… no les llega el correo de activacion… ayudenme por favor…. como configuro mi joomla y como lo configuro en godaddy tb porfa soy novato… mil gracias
mayo 11th, 2011 at 5:26 PM
Hola César,
En la versión Linux de GoDaddy no he tenido ese tipo de problemas (generalmente uso la sentencia mail() que por lo general está integrada en PHP), de todas formas no está de más usar los servidores indicados arriba en el artículo.
mayo 12th, 2011 at 8:46 AM
ayer estuve conversando con godaddy, y me dijeron que esa configuracion que mencionas arriba de SMTP solo es valida para los que usan el formulario de godaddy, yo uso el formulario de registro de joomla, para ser mas especifico el de JOMSOCIAL, que es un componente de joomla para hacer red social. segun ellos el formulario de joomla ni sikiera deberia mandar correos, pero si lo hace. mi jomsocial manda correos a los q se registran con cuentas en google y en hotmail, pero no en yahoo… no tengo configurado el SMTP por lo mismo que me dijeron y lo tengo en correo PHP, intente ponerlo en Sendmail en la configuracion del backend, m,e registre con una cuenta en yahoo y nada… no se si podrias ayudarme…
mayo 12th, 2011 at 10:43 AM
hola robregon… acabo de averiguar cual ha sido el problema… y resulta que yahoo tiene una configuracion rara, me explico. si yo me creo uan cuenta como xxx@yahoo.es, esto quiere decir que mi cuenta original es xxx@yahoo.es, pero tambien puedo ingresar a mi cuenta digitando xxx@yahoo.COM o xxx@yahoo.COM.PE sin ningun problema. entonces la gente que se registraba en mi pagina estan acostumbrados a ingresar con .COM cuando en realidad son .ES o quiza .COM.PE, si me funciona todo correctamente.. agradesco tu ayuda
mayo 12th, 2011 at 11:35 AM
Qué bueno, estoy seguro que a muchos más lectores les será de utilidad saberlo.
julio 6th, 2011 at 8:21 AM
Sos un GENIOoooooooooooooo
GRACIAS!!!!!!!!!!
agosto 1st, 2011 at 11:02 PM
Inicialmente este articulo me permitió resolver mi problema para enviar correos mientras probaba la app en localhost… sin embargo, cuando la pasé a producción alojada en GoDaddy, tengo un error que me indica que el servidor SMTP no puede ser conectado.
Que podría estar sucediendo? Estoy usando el servicio con una cuenta de correo de este proveedor y con la siguiente configuración en PHPMailer .
$mail->Host=”ssl://smtpout.secureserver.net”;
$mail->Port=465;
Espero puedan ayudarme, no logro encontrar solución a la fecha.
Saludos