Foros del Web » Programando para Internet » PHP »

Problema de conexion con phpmailer

Estas en el tema de Problema de conexion con phpmailer en el foro de PHP en Foros del Web. Hola a todos, estoy enviando correos mediante php-mailer, el codigo funciona correctamente en el servidor de pruebas, sin embargo cuando lo copio al servidor funcional ...
  #1 (permalink)  
Antiguo 23/01/2014, 08:06
 
Fecha de Ingreso: junio-2010
Mensajes: 168
Antigüedad: 13 años, 10 meses
Puntos: 3
Problema de conexion con phpmailer

Hola a todos, estoy enviando correos mediante php-mailer, el codigo funciona correctamente en el servidor de pruebas, sin embargo cuando lo copio al servidor funcional me aparece el siguiente error:

SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
SMTP Error: Could not connect to SMTP host

El envio lo estoy haciendo mediante GMAIL.

Código PHP:
error_reporting(E_STRICT);
    date_default_timezone_set('America/Toronto');
    require_once('PHPMailer/class.phpmailer.php');
    $mail             = new PHPMailer();
    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->CharSet="utf-8";
    $mail->Host       = "smtp.gmail.com"; // SMTP server
    $mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
    $mail->SMTPAuth   = true;                  // enable SMTP authentication
    $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
    $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
    $mail->Port       = 465;                   // set the SMTP port for the GMAIL server
    $mail->Username   = "[email protected]";  // GMAIL username
    $mail->Password   = "micontraseña";            // GMAIL password
    $mail->From = "[email protected]";
    $mail->FromName = "Departamento de Educación Virtual y a Distancia";
    $mail->Subject = "Bienvenidos a Dicom";
    $mail->IsHTML(true);
    $mail->MsgHTML($body);
    $mail->AddAddress("$this->email","Estudiante");
//      $mail->AddAttachment('imagenes/correo.png');      // attachment
    //enlace pruebas
    $body  = 
    " hola mundo";
        
    $mail->Body = $body;
    if(!$mail->Send()) {
      echo "Mailer Error: " . $mail->ErrorInfo.'<br>';
    } else {
      echo "Se ha enviado un correo de validación a: $this->email<br>";
    ?><script>alert("Se ha enviado un correo de validación");</script><?    
    
}

QUE podria estar haciendo mal??
  #2 (permalink)  
Antiguo 23/01/2014, 08:33
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Problema de conexion con phpmailer

Pues en los hosting siempre se tiene problemas ya que se cierran puertos que son necesarios para el funcionamiento de la conexión SMTP, contacta con tu proveedor de hosting para que solucionen tu problema.

Si no puedes o no quieres hacerlo la solución es enviar dichos correos con PHPMAILER pero con la función MAIL de PHP. Lo haces quitando estas lineas:

Código PHP:
Ver original
  1. $mail->IsSMTP(); // telling the class to use SMTP
  2. $mail->Host       = "smtp.gmail.com"; // SMTP server
  3. $mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
  4. $mail->SMTPAuth   = true;                  // enable SMTP authentication
  5. $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
  6. $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
  7. $mail->Port       = 465;                   // set the SMTP port for the GMAIL server
  8. $mail->Username   = "[email protected]";  // GMAIL username
  9. $mail->Password   = "micontraseña";            // GMAIL password

Y colocando esta linea

Código PHP:
Ver original
  1. $mail->IsMail();

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 23/01/2014, 09:07
 
Fecha de Ingreso: junio-2010
Mensajes: 168
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Problema de conexion con phpmailer

HOla gracias por la ayuda, ya probe con lo q me indicaste y no funciono.

Que requisito debe tener el servidor para q funcione correctamente?
  #4 (permalink)  
Antiguo 23/01/2014, 09:14
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Problema de conexion con phpmailer

Creo que es mejor que contactes con tu proveedor de Hosting

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #5 (permalink)  
Antiguo 23/01/2014, 10:53
 
Fecha de Ingreso: junio-2010
Mensajes: 168
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Problema de conexion con phpmailer

Me temo q tus respuesta NO ME SON DE MUCHA AYUDA, yo soy el q administra el servidor!, se mas concreto por favor, y si el correo se envia desde GMAIL no creo q el problema sea de puertos
  #6 (permalink)  
Antiguo 23/01/2014, 11:04
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Problema de conexion con phpmailer

Me disculpo si mis respuestas no son de mucha ayuda, el problema radica en que tu no sabes preguntar

A ver creo que tienes unos serios problemas de entender los errores que el mismo PhpMailer te da:

Cita:
SMTP Error: Could not connect to SMTP host
Una pregunta simple. Si PhpMailer no es capaz de conectarse al host de Gmail. De quién es el error? Está claro de que de Gmail no es ya que ni siquiera se puede conectar.

Segundo si hubieses buscado en Google este error:

Cita:
SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
Hubieras encontrado respuestas como estas (negritas mias):

Cita:
Connection time-out means the mail server cannot be reached anymore. If the mail server is different from your web server (i.e. not localhost) I'd check with your hosting provider whether they enabled some sort of firewall that blocks connections on the SMTP port (port 25 usually).
En este caso los puertos que pueden estar bloqueados son el 25 para usar la función MAIL de PHP y el 465 para usar el SMTP de Gmail

Tercero, no has especificado que error te sale cuando hiciste los cambios que te propuse, si es que te salio error. Si no aportas información suficiente, es culpa mía que me toque que adivinar? Y aún así no dije que tu respuesta no es de mucha ayuda por omitir información importante

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #7 (permalink)  
Antiguo 23/01/2014, 13:28
 
Fecha de Ingreso: junio-2010
Mensajes: 168
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Problema de conexion con phpmailer

Gracias nuevamente el error que me sale es el 2nd de tu lista:

servidorSMTP -> ERROR: Failed to connect to server: Connection timed out (110)
  #8 (permalink)  
Antiguo 23/01/2014, 13:31
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Problema de conexion con phpmailer

y ya has tratado de abrir los puertos?

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #9 (permalink)  
Antiguo 24/01/2014, 08:01
 
Fecha de Ingreso: junio-2010
Mensajes: 168
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Problema de conexion con phpmailer

En mi servidor de pruebas (en el cual el codigo funciona perfectamente)el puerto 465 se encuentra cerrado. Que puerto debo abrir entonces? que debo revisar? gracias!
  #10 (permalink)  
Antiguo 24/01/2014, 10:07
 
Fecha de Ingreso: junio-2010
Mensajes: 168
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Problema de conexion con phpmailer

hola ya revisé las iptables del servidor y no tiene nada creado.

root@DICOM:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

encuanto a los puertos tiene esto:

PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
5432/tcp open postgresql


Gracias por la ayuda!
  #11 (permalink)  
Antiguo 24/01/2014, 10:24
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Problema de conexion con phpmailer

Como te dije tendrías que abrir el puerto 465 si vas a usar el SMTP de Gmail, si no debes de configurar MAIL para PHP (esto lo digo ya que si el puerto 25 está abierto significa que PHP no esta correctamente configurado, además de que tienes que tener un servidor de correos instalado, pero creo que las distribuciones de Linux traen uno por defecto)

Mira esto.

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #12 (permalink)  
Antiguo 24/01/2014, 13:35
 
Fecha de Ingreso: junio-2010
Mensajes: 168
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Problema de conexion con phpmailer

Hola muchas gracias por la ayuda, ya intenté abrir el puerto por medio de "iptables" asi:

iptables -A OUTPUT -p tcp --sport 465 -j ACCEPT
iptables -A INPUT -p tcp --sport 465 -j ACCEPT

pero el resultado es el mismo. esta bien ejecutado el comando? que otra cosa debo hacer?

Gracias por la ayuda

Etiquetas: conexion, html, phpmailer
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:10.