Foros del Web » Programando para Internet » PHP »

problema con phpmailer

Estas en el tema de problema con phpmailer en el foro de PHP en Foros del Web. hola, resulta que en mi sitio esta apareciendo esto cuando se intenta enviar un correo Warning: fputs(): supplied argument is not a valid stream resource ...
  #1 (permalink)  
Antiguo 21/06/2009, 23:09
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
problema con phpmailer

hola, resulta que en mi sitio esta apareciendo esto cuando se intenta enviar un correo

Warning: fputs(): supplied argument is not a valid stream resource in /home/content/c/e/j/cejarcon/html/mipyme/class.smtp.php on line 163

y la linea 163 de la clase es

fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF);

que esta dentro de
Código PHP:
 function Authenticate($username$password) {
    
// Start authentication
    
fputs($this->smtp_conn,"AUTH LOGIN" $this->CRLF);

    
$rply $this->get_lines();
    
$code substr($rply,0,3);

    if(
$code != 334) {
      
$this->error =
        array(
"error" => "AUTH not accepted from server",
              
"smtp_code" => $code,
              
"smtp_msg" => substr($rply,4));
      if(
$this->do_debug >= 1) {
        echo 
"SMTP -> ERROR: " $this->error["error"] .
                 
": " $rply $this->CRLF;
      }
      return 
false;
    } 
a que se debe esto, que esta pasando?

y no le he movido nada, solo lo corri ahora y no funciono
__________________
Say no more.......
  #2 (permalink)  
Antiguo 22/06/2009, 05:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con phpmailer

te recomiendo no hagas un problema de esto...

osea, PHPMailer es el 99.9% de las veces funcional... tal ves tienes un error en tu implementación y por eso genera un error inesperado...

yo siempre digo, si el código es estable y liberado no lo toques hasta que recibas uno mas actualizado...

tal ves si nos muestras como estas empleando la clase en tu código.... tal ves
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/06/2009, 10:01
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
Respuesta: problema con phpmailer

este es el script de como estoy utilizando php mailer, y si, efectivamente hasta ahora estaba funcionando perfecto pero no se que le paso hoy

Código php:
Ver original
  1. //Se crea el formato de correo a Enviar
  2. $mail=new PHPMailer();
  3. $mail->Mailer="smtp";
  4. $mail->Helo = "www.crmbusiness.biz"; //Muy importante para que llegue a hotmail y otros
  5. $mail->SMTPAuth=true;
  6. $mail->Host="smtpout.secureserver.net";
  7. $mail->Port=80; //depende de lo que te indique tu ISP. El default es 25, pero nuestro ISP lo tiene puesto al 26
  8. $mail->Username="*******@******.com";
  9. $mail->Password="******";
  10. $mail->From="******@********";
  11. $mail->FromName="Eventos CRM Business";
  12. $mail->Timeout=60;
  13. $mail->IsHTML(true);
  14. //Enviamos el correo
  15. $mail->AddAddress('[email protected]'); //Puede ser Hotmail
  16. $mail->AddAddress($email); //Puede ser Hotmail
  17. $mail->Subject='Inscripcion Exitosa';
  18.  
  19.  
  20. //Cuerpo del mensaje
  21. $body = $nombre." Tu inscripcion al ".$evento." quedo registrada de la siguiente manera";
  22. $body.= "<table  width='600' border='1'>";
  23. $body.="<tr>";
  24. $body.="<td><b>Tipo de Documento</b></td>";
  25. $body.="<td>".$tipo."</td>";
  26. $body.="</tr>";
  27. $body.="<tr>";
  28. $body.="<td><b>Documento de Identidad</b></td>";
  29. $body.="<td>".$documento."</td>";
  30. $body.="</tr>";
  31. $body.="<tr>";
  32. $body.="<td><b>Nombres y Apellidos</b></td>";
  33. $body.="<td>".$nombre."</td>";
  34. $body.="</tr>";
  35. $body.="<tr>";
  36. $body.="<td><b>Correo Electronico</b></td>";
  37. $body.="<td>".$email."</td>";
  38. $body.="</tr>";
  39. $body.="<tr>";
  40. $body.="<td><b>Telefono de Contacto</b></td>";
  41. $body.="<td>".$telefono."</td>";
  42. $body.="</tr>";
  43. $body.="<tr>";
  44. $body.="<td><b>Celular</b></td>";
  45. $body.="<td>".$celular."</td>";
  46. $body.="</tr>";
  47. $body.="<tr>";
  48. $body.="<td><b>Empresa</b></td>";
  49. $body.="<td>".$empresa."</td>";
  50. $body.="</tr>";
  51. $body.="<tr>";
  52. $body.="<td><b>Cargo</b></td>";
  53. $body.="<td>".$cargo."</td>";
  54. $body.="</tr>";
  55. $body.="<td><b>Fecha de Inscripcion</b></td>";
  56. $body.="<td>".$fechahoy."</td>";
  57. $body.="</tr>";
  58. $body.="<tr>";
  59. $body.="<td><b>Hora de Inscripcion</b></td>";
  60. $body.="<td>".$horaactual."</td>";
  61. $body.="</tr>";
  62. $body.="<tr>";
  63. $body.="<td colspan='2'>Recuerda que para hacer efectivo este registro y poder asistir al evento debes consignar el valor de la inscripcion a la cuenta de ahorro n&uacute;mero <strong>0161 7036 0537</strong> del banco Davivienda, a nombre de CRM Business Internet &amp; Marketing Solutions NIT. 900.268.053-6 y enviar el comprobante de consignacion al eMAIL <a href='mailto:[email protected]'>[email protected] </a>indicando nombres completos, documento de identidad, telefono e contacto y empresa, o al fax 485 4441, <b>Inscripcion que no sea validada por un comprobante de consinacion no sera tenida en cuenta</b> </td>";
  64. $body.="</tr>";
  65. $body.="</table>";
  66. $body.="<p>CRM Business - Telefono ++57 2 4854564";
  67. $body.="<p><a href='mailto:[email protected]'>[email protected]</a></p>";
  68. $body.="<p>CALI - COLOMBIA</p>";
  69.  
  70. $mail->Body = $body;
  71. $mail->Send();

como ven, utilizo como smtp el servidor de godaddy, de hecho mi host esta en godaddy, pero veo que hay limitaciones para envio de correos desde alli, creo que 100 relays diarios, no he podido utilizarla con gmail y me gustaria bastante,
__________________
Say no more.......
  #4 (permalink)  
Antiguo 22/06/2009, 10:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con phpmailer

no es difícil usar PHPMailer con GMail, yo lo he hecho...

en internet hay bastantes tutoriales.... y muy simples!!

PHPMailer GMail
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 22/06/2009, 10:33
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
Respuesta: problema con phpmailer

mira que he consultado varios tutos de utilizar phpmailer con gmail y en todos coincide en hacer modificacion en la linea 537 que aparece en los tutos como
Código php:
Ver original
  1. # Original
  2. if(strstr($hosts[$index], ":"))
  3.     list($host, $port) = explode(":", $hosts[$index]);
  4. else
  5. {
  6.     $host = $hosts[$index];
  7.     $port = $this->Port;
  8. }

pero en la clase que yo tengo esta como

[highlight=php]
elseif($this->Mailer == "mail")

{

$message[] = sprintf("Sender: %s%s", $this->Sender, $this->LE);

$message[] = sprintf("Subject: %s%s", $this->Subject, $this->LE);

$message[] = sprintf("to: %s%s", $this->addr_list($this->to), $this->LE);

}
[/php]

y esta clase es la ultima que me he descargado, ahi si no se que hacer.

Entonces mi problema si es relacionado con el server smtp cierto?
__________________
Say no more.......
  #6 (permalink)  
Antiguo 22/06/2009, 10:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con phpmailer

si, el primer problema viene relacionado con el servidor SMTP

mira, este enlace....
http://tetlphp.blogspot.com/2009/04/como-comenzar.html

ahí pongo la prueba de que si se puede, sin modificar el script...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 22/06/2009, 10:47
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
Respuesta: problema con phpmailer

mira que lo pongo asi como lo tenes en el enlace que me acabas de dar y me da este error

Warning: fsockopen() expects parameter 2 to be long, string given in /home/content/c/e/j/cejarcon/html/mipyme/class.smtp.php on line 87

mi script quedo asi
Código php:
Ver original
  1. //Se crea el formato de correo a Enviar
  2. $mail=new PHPMailer();
  3. /*
  4. $mail->Mailer="smtp";
  5. $mail->Helo = "www.crmbusiness.biz"; //Muy importante para que llegue a hotmail y otros
  6. $mail->SMTPAuth=true;
  7. $mail->Host="smtpout.secureserver.net";
  8. $mail->Port=80; //depende de lo que te indique tu ISP. El default es 25, pero nuestro ISP lo tiene puesto al 26
  9. $mail->Username="[email protected]";
  10. $mail->Password="buckdich";
  11. $mail->From="[email protected]";
  12. $mail->FromName="Eventos CRM Business";
  13. $mail->Timeout=60;
  14. $mail->IsHTML(true);
  15. */
  16. // SMTP
  17.     $mail->IsSMTP();
  18.     $mail->Host = 'ssl://smtp.gmail.com';
  19.     $mail->Port = 465;
  20.     $mail->SMTPAuth = true;
  21.  
  22.     // datos de la cuenta de GMail
  23.     $mail->Username = '[email protected]';
  24.     $mail->Password = 'buckdich';
  25.  
  26. //Enviamos el correo
  27. $mail->AddAddress('[email protected]'); //Puede ser Hotmail
  28. $mail->AddAddress($email); //Puede ser Hotmail
  29. $mail->Subject='Inscripcion Exitosa';

y como te digo en class.phpmailer.php no pude modificar nada porque no encontre las lineas que dicen los tuto se deben modificar
__________________
Say no more.......

Última edición por el_cesar; 22/06/2009 a las 11:05
  #8 (permalink)  
Antiguo 22/06/2009, 11:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con phpmailer

descargaste el PHPMailer para PHP4 que coloque en el post del enlace??

(no importa si usas PHP5 el script debe funcionar)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 22/06/2009, 11:47
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
Respuesta: problema con phpmailer

si descargue el PHPMailer que mencionas pero no funka con ninguno

depronto tu no tienes por ahi a la mano la clase que usaste para que me la envies?

porque mira el error que me sale ahora

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Connection timed out) in /home/content/c/e/j/cejarcon/html/mipyme/class.smtp.php on line 87
__________________
Say no more.......

Última edición por el_cesar; 22/06/2009 a las 11:53
  #10 (permalink)  
Antiguo 22/06/2009, 11:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con phpmailer

abre los scripts class.phpmailer.php y class.smtp.php y revisa el numero de versión que esta casi al comienzo de cada script...

la que yo tengo, y descargue de sourceforge es la 2.0.4 para PHP4

y pues... no te la paso, por que es la que descargue de sf.net así que tu puedes hacer lo mismo...

¿¿que versión estas utilizando???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 22/06/2009, 12:01
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
Respuesta: problema con phpmailer

estoy utilizando la 2.0.4, veo que es la misma tuya, pero no se por que no me funciona, mira, te pongo nuevamente mi script para ver si hay algo malo alli

Código php:
Ver original
  1. $mail=new PHPMailer();
  2. /*
  3. $mail->Mailer="smtp";
  4. $mail->Helo = "www.crmbusiness.biz"; //Muy importante para que llegue a hotmail y otros
  5. $mail->SMTPAuth=true;
  6. $mail->Host="smtpout.secureserver.net";
  7. $mail->Port=80; //depende de lo que te indique tu ISP. El default es 25, pero nuestro ISP lo tiene puesto al 26
  8. $mail->Username="[email protected]";
  9. $mail->Password="buckdich";
  10. $mail->From="[email protected]";
  11. $mail->FromName="Eventos CRM Business";
  12. $mail->Timeout=60;
  13. $mail->IsHTML(true);
  14. */
  15. // SMTP
  16.     $mail->IsSMTP();
  17.     $mail->Host = 'ssl://smtp.gmail.com';
  18.     $mail->Port = 465;
  19.     $mail->SMTPAuth = true;
  20.  
  21.     // datos de la cuenta de GMail
  22.     $mail->Username = '******@gmail.com';
  23.     $mail->Password = '*******';
  24.  
  25. //Enviamos el correo
  26. $mail->AddAddress('[email protected]'); //Puede ser Hotmail
  27. $mail->AddAddress($email); //Puede ser Hotmail
  28. $mail->Subject='Inscripcion Exitosa';
__________________
Say no more.......
  #12 (permalink)  
Antiguo 22/06/2009, 12:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con phpmailer

pues el código esta bien, la clase es la correcta...

intentalo de nuevo con:
Código PHP:
if( ! $mail->Send())
{
  echo 
'Error: ' $mail->ErrorInfo;
}
else
{
  echo 
'Mail enviado!';

o tal ves sigue siendo tu servicio de hosting, la configuración, etc...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 22/06/2009, 12:53
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
Respuesta: problema con phpmailer

le agregue lo que me sugieres y da este error:

Warning: fsockopen() expects parameter 2 to be long, string given in /home/content/c/e/j/cejarcon/html/mipyme/class.smtp.php on line 87
Error: SMTP Error: could not connect to SMTP host server(s)

Lo que me parece raro es que el estaba funcionando bien y de repente dejo de funcionar, como puedo solucionarlo?, recuerdo, mi host es de godaddy
__________________
Say no more.......
  #14 (permalink)  
Antiguo 22/06/2009, 13:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con phpmailer

como te he dicho, no es problema de PHPMailer... pueden ser varios problemas...

el primer error es sencillo... dice que se necesita un numero y se esta entregando una cadena...

me imagino que es el puerto, estas colocando un entero correctamente???


el siguiente mensaje es propio de PHPMailer... que dice: error SMTP, no se puede conectar al servidor SMTP

sigo pensando o que haces algo mal, y solucionándolo... tal ves tu hosting sea malo!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 22/06/2009, 13:08
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
Respuesta: problema con phpmailer

mira aqui esta todo mi script
Código php:
Ver original
  1. //Se crea el formato de correo a Enviar
  2. $mail=new PHPMailer();
  3. /*
  4. $mail->Mailer="smtp";
  5. $mail->Helo = "www.crmbusiness.biz"; //Muy importante para que llegue a hotmail y otros
  6. $mail->SMTPAuth=true;
  7. $mail->Host="smtpout.secureserver.net";
  8. $mail->Port=80; //depende de lo que te indique tu ISP. El default es 25, pero nuestro ISP lo tiene puesto al 26
  9. $mail->Username="****@fincaguadalajara.com";
  10. $mail->Password="*****";
  11. $mail->From="[email protected]";
  12. $mail->FromName="Eventos CRM Business";
  13. $mail->Timeout=60;
  14. $mail->IsHTML(true);
  15. */
  16.  
  17. // SMTP
  18.     $mail->IsSMTP();
  19.     $mail->Host = 'ssl://smtp.gmail.com';
  20.     $mail->Port = 465;
  21.     $mail->SMTPAuth = true;
  22.  
  23.     // datos de la cuenta de GMail
  24.     $mail->Username = '******@gmail.com';
  25.     $mail->Password = '****';
  26.  
  27. //Enviamos el correo
  28. $mail->AddAddress('[email protected]'); //Puede ser Hotmail
  29. $mail->AddAddress($email); //Puede ser Hotmail
  30. $mail->Subject='Inscripcion Exitosa';
  31.  
  32.  
  33. //Cuerpo del mensaje
  34. $body = $nombre." Tu inscripcion al ".$evento." quedo registrada de la siguiente manera";
  35. $body.= "<table  width='600' border='1'>";
  36. $body.="<tr>";
  37. $body.="<td><b>Tipo de Documento</b></td>";
  38. $body.="<td>".$tipo."</td>";
  39. $body.="</tr>";
  40. $body.="<tr>";
  41. $body.="<td><b>Documento de Identidad</b></td>";
  42. $body.="<td>".$documento."</td>";
  43. $body.="</tr>";
  44. $body.="<tr>";
  45. $body.="<td><b>Nombres y Apellidos</b></td>";
  46. $body.="<td>".$nombre."</td>";
  47. $body.="</tr>";
  48. $body.="<tr>";
  49. $body.="<td><b>Correo Electronico</b></td>";
  50. $body.="<td>".$email."</td>";
  51. $body.="</tr>";
  52. $body.="<tr>";
  53. $body.="<td><b>Telefono de Contacto</b></td>";
  54. $body.="<td>".$telefono."</td>";
  55. $body.="</tr>";
  56. $body.="<tr>";
  57. $body.="<td><b>Celular</b></td>";
  58. $body.="<td>".$celular."</td>";
  59. $body.="</tr>";
  60. $body.="<tr>";
  61. $body.="<td><b>Empresa</b></td>";
  62. $body.="<td>".$empresa."</td>";
  63. $body.="</tr>";
  64. $body.="<tr>";
  65. $body.="<td><b>Cargo</b></td>";
  66. $body.="<td>".$cargo."</td>";
  67. $body.="</tr>";
  68. $body.="<td><b>Fecha de Inscripcion</b></td>";
  69. $body.="<td>".$fechahoy."</td>";
  70. $body.="</tr>";
  71. $body.="<tr>";
  72. $body.="<td><b>Hora de Inscripcion</b></td>";
  73. $body.="<td>".$horaactual."</td>";
  74. $body.="</tr>";
  75. $body.="<tr>";
  76. $body.="<td colspan='2'>Recuerda que para hacer efectivo este registro y poder asistir al evento debes consignar el valor de la inscripcion a la cuenta de ahorro n&uacute;mero <strong>0161 7036 0537</strong> del banco Davivienda, a nombre de CRM Business Internet &amp; Marketing Solutions NIT. 900.268.053-6 y enviar el comprobante de consignacion al eMAIL <a href='mailto:[email protected]'>[email protected] </a>indicando nombres completos, documento de identidad, telefono e contacto y empresa, o al fax 485 4441, <b>Inscripcion que no sea validada por un comprobante de consinacion no sera tenida en cuenta</b> </td>";
  77. $body.="</tr>";
  78. $body.="</table>";
  79. $body.="<p>CRM Business - Telefono ++57 2 4854564";
  80. $body.="<p><a href='mailto:[email protected]'>[email protected]</a></p>";
  81. $body.="<p>CALI - COLOMBIA</p>";
  82.  
  83. $mail->Body = $body;
  84. //$mail->Send();
  85. if( ! $mail->Send())
  86. {
  87.   echo 'Error: ' . $mail->ErrorInfo;
  88. }
  89. else
  90. {
  91.   echo 'Mail enviado!';
  92. }  
  93. }

la verdad no se que esta mal, porque como te digo ella venia trabajando bien y no le habia modificado nada hasta ahora que tu me estas ayudando a solucionarlo
__________________
Say no more.......

Última edición por el_cesar; 22/06/2009 a las 13:34
  #16 (permalink)  
Antiguo 22/06/2009, 16:48
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
Respuesta: problema con phpmailer

a quienes esten interesados en la solucion de este caso lo solucione usando la funcion mail de php y asi quedo
Código PHP:
$para=$email;
$asunto='Apoyo a Evento';

// Para enviar correo HTML, la cabecera Content-type debe definirse
$cabeceras  'MIME-Version: 1.0' "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";

// Cabeceras adicionales
//$cabeceras .= 'To: María <[email protected]>, Kelly <[email protected]>' . "\r\n";
$cabeceras .= 'From: CRM Business <[email protected]>' "\r\n";
//$cabeceras .= 'Cc: [email protected]' . "\r\n";
$cabeceras .= 'Bcc: [email protected]"\r\n";

// Enviarlo
mail($para$asunto$body$cabeceras);

y aqui dejo el enlace de referencia http://www.php.net/manual/es/function.mail.php
__________________
Say no more.......
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 15:44.