Foros del Web » Programando para Internet » PHP »

class.phpmailer no funciona en apache2 y php5

Estas en el tema de class.phpmailer no funciona en apache2 y php5 en el foro de PHP en Foros del Web. Hola como andan, con este script me enviaba re-bien los correos con adjuntos, pero al cambiar a apache2 y php5 en el proveedor, dejó de ...
  #1 (permalink)  
Antiguo 17/11/2008, 13:07
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
class.phpmailer no funciona en apache2 y php5

Hola como andan, con este script me enviaba re-bien los correos con adjuntos, pero al cambiar a apache2 y php5 en el proveedor, dejó de enviar. no da error alguno, pero los correos no me llegan.


Me olvidé el código acá va.

Código PHP:
<?php 

      
require("class.phpmailer.php"); 

      if (
$_POST['action'] == "send") {

          
$varname $_FILES['archivo']['name'];
 
          
$vartemp $_FILES['archivo']['tmp_name'];
         
          
$mail = new PHPMailer();
 
          
$mail->Host "localhost";

          
$mail->From "info@
          "
;
    

          
$mail->FromName "C
          "
;

          
$mail->Subject $_POST['asunto'];

          
$mail->AddAddress($_POST['destino']);
          
           
$mail->AddBCC $_POST['mensaje1'] );

          if (
$varname != "") {

              
$mail->AddAttachment($vartemp$varname);

          }
          
          
$body.= $_POST['mensaje'];

          
$body.= "Enviado por http://www.f
          .org.ar 
Si no desea recibir mas información, responda este correo con asunto ELIMINAR"
;

          
$mail->Body $body;
    

    
          
$mail->Send();

      }
echo 
"su mensaje ha sido enviado satisfactoriamente";

?>
<table width="500" border="0" cellspacing="4" cellpadding="4">
  <tr>
    <td colspan="2"><a href="formu.php">enviar otro mensaje</a> / <a href="actualizar1.php">Eliminar correo de la base de datos</a> </td>
  </tr>
</table>

Última edición por mvlsistemas; 17/11/2008 a las 16:52
  #2 (permalink)  
Antiguo 17/11/2008, 13:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: class.phpmailer no funciona en apache2 y php5

mmm.... y como usas la clase en tu script ???

no creo que una clase bien diseñada como PHPMailer falle... pero tu implementación si que puede...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/11/2008, 13:34
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: class.phpmailer no funciona en apache2 y php5

Será la visibilidad pública? (Cuando tenes var $metodo/$propiedad hay queponerla como public $metodo/$propiedad, o lo que corresponda)
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #4 (permalink)  
Antiguo 17/11/2008, 15:34
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Cita:
Iniciado por nicolaspar Ver Mensaje
Será la visibilidad pública? (Cuando tenes var $metodo/$propiedad hay queponerla como public $metodo/$propiedad, o lo que corresponda)
gracias por sus respuestas, podrias explicarm mejor esto: hay queponerla como public $metodo/$propiedad

tal cual en la PHPMailer - PHP email class |
| Version: 2.2.1 estan asi con public y private.

Gracias!! era eso nomas subi la versión nueva y funcionó.

lo bajé de acá: http://manuales.ideasmultiples.com/c...atid,35/id,10/ solo use la class.phpmailer.php

Última edición por GatorV; 17/11/2008 a las 19:28
  #5 (permalink)  
Antiguo 10/02/2009, 13:01
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Respuesta: class.phpmailer no funciona en apache2 y php5

Hola nuevamente tengo problemas, a una pop3 llega pero a gnail, hotmail, etc no.
Pude enviar un mail y después nuca mas sin modificar nada

Código PHP:
<?php 

      
require("class.phpmailer.php"); 

      if (
$_POST['action'] == "send") {

          
$varname $_FILES['archivo']['name'];
 
          
$vartemp $_FILES['archivo']['tmp_name'];
         
          
$mail = new PHPMailer();
 
          
$mail->Host "localhost";

          
$mail->From "[email protected]";
    

          
$mail->FromName "Colegio de Fonoaudiólogos de Córdoba";

          
$mail->Subject $_POST['asunto'];

          
$mail->AddAddress($_POST['destino']);
          
           
$mail->AddBCC $_POST['mensaje1'] );

          if (
$varname != "") {

              
$mail->AddAttachment($vartemp$varname);

          }
          
          
$body.= $_POST['mensaje'];

          
$body.= "Enviado por http://www.jbjh.org.ar 
Si no desea recibir mas información, responda este correo con asunto ELIMINAR"
;

          
$mail->Body $body;
    

    
          
$mail->Send();

      }
echo 
"su mensaje ha sido enviado satisfactoriamente";

?>
el mismo script en otro dominio me da este error:

Warning: fsockopen() [function.fsockopen]: unable to connect to localhost:25 (Connection refused) in /home/c/domains/c.com.ar/public_html/class.phpmailer.php on line 1990
su mensaje ha sido enviado satisfactoriamente

Última edición por mvlsistemas; 10/02/2009 a las 13:27
  #6 (permalink)  
Antiguo 10/02/2009, 14:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: class.phpmailer no funciona en apache2 y php5

El warning te dice que no se pudo conectar al servidor SMTP, por lo que no vas a poder enviar el correo, revisa que el Servidor de SMTP este corriendo y escuchando en el puerto 25.

Saludos
  #7 (permalink)  
Antiguo 10/02/2009, 14:11
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Respuesta: class.phpmailer no funciona en apache2 y php5

Gracias Gator en ese si puede ser ese el problema pero en otro va bien pero no hay forma que me llegue a hotmail y cuando pongo dos correos separados por comas en la bbc no llegan tampoco, no se que puede ser.
  #8 (permalink)  
Antiguo 10/02/2009, 14:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: class.phpmailer no funciona en apache2 y php5

http://www.forosdelweb.com/f18/metod...otmail-630896/

Saludos
  #9 (permalink)  
Antiguo 10/02/2009, 17:49
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Respuesta: class.phpmailer no funciona en apache2 y php5

Gracias nuevamente y a PUNTO DE RENDIRME porque creo que tiene que ser el server en una lista negra, he probado todo lo sugerido y me pasa que si pongo como destino una cuenta de gmail y como bbc dos pop3 llega perfecto, menos a hotmail que no hay forma.


Pero si en bbc
meto separadas por comas la de gmail o hotmail y otras pop3 NO LLEGAN
Código PHP:
<?php
require("class.phpmailer.php");
if (
$_POST['action'] == "send") {
    
$varname $_FILES['archivo']['name'];
    
$vartemp $_FILES['archivo']['tmp_name'];
    
    
$mail = new PHPMailer();
    
$mail->Mailer="smtp";
    
$mail->Helo "www.....";
    
$mail->SMTPAuth=true;
    
$mail->Host "localhost";
    
$mail->Port=25;
    
$mail->Username "info@,,,
    $mail->Password = "
xxxx"; 
    $mail->From = "
info@,,,";
    $mail->FromName = "
f";
    $mail->Timeout=60;
    $mail->IsHTML(true);
    $mail->Subject = $_POST['asunto'];
    $mail->AddAddress($_POST['destino']);
    $mail->AddBCC ( $_POST['mensaje1'] );
    if ($varname != "") {
        $mail->AddAttachment($vartemp, $varname);
    }
    $body = "
<strong>Mensaje</strong><br><br>";
    $body.= $_POST['mensaje']."
<br>";
    $body.= "
<i>Enviado por http://www.dominio.com.ar</i>";
    
$mail->Body $body;
    
$mail->IsHTML(true);
    
$mail->Send();

echo 
"su mensaje ha sido enviado satisfactoriamente";
?>

Última edición por mvlsistemas; 10/02/2009 a las 17:50 Razón: mal tipeado
  #10 (permalink)  
Antiguo 10/02/2009, 23:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: class.phpmailer no funciona en apache2 y php5

Para pasar muchas direcciones tienes que llamar varias veces a AddBCC, si lo pasas con , te va a marcar error.

Por otro lado para hotmail tienes que liberar tu dominio, tienes que contactar al helpdesk de Hotmail y agregar tu dominio a una "whitelist" para poder enviar correos.

Saludos
  #11 (permalink)  
Antiguo 11/02/2009, 07:41
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
llamar varias veces a AddBCC? poniendo mas campos con las bbc? son 400 direcciones mas o menos.

Te cuento subí a otro server este y envía perfecto a todos los proveedores.

Código PHP:
<?php 

      
require("class.phpmailer.php"); 

      if (
$_POST['action'] == "send") {

          
$varname $_FILES['archivo']['name'];
 
          
$vartemp $_FILES['archivo']['tmp_name'];
         

          
$mail = new PHPMailer();
 
          
$mail->Host "localhost";

          
$mail->From "[email protected]";

          
$mail->FromName ".com.ar";
          

          
$mail->Subject $_POST['asunto'];

          
$mail->AddAddress($_POST['destino']);
          
$mail->AddBCC $_POST['mensaje1'] );

          if (
$varname != "") {

              
$mail->AddAttachment($vartemp$varname);

          }

          
$body "<strong>Mensaje</strong><br><br>";
          

          
$body.= $_POST['mensaje']."<br>";

          
$body.= "<i>Enviado por http://www..com.ar . </i></p>
<p><i>Si no desea recibir mas información, responda este correo con asunto ELIMINAR.</i>
</p>"
;

          
$mail->Body $body;
    

          
$mail->IsHTML(true);

          
$mail->Send();

      }
echo 
"su mensaje ha sido enviado satisfactoriamente";

?>
Seguro es el server

Bueno, el error estaba en mi ignorancia y no en el server, ahora asi llegan pero no me toma varios correos en bcc y ahí cuando pongo mas de un mail separado por, no envia nada a ningun lado si pongo un destinatario y un bcc llega a donde sea.
$mail->Host = "mail.xxx.com.ar";
ahi estaba el error tenia localhost en vez de el smtp del host. estoy en php5 y apache2 por si no dije antes.


acá no me los toma a los correos $mail->AddBCC($_POST['mensaje1'] );


Código PHP:
<?php 

      
require("class.phpmailer.php"); 

      if (
$_POST['action'] == "send") {

          
$varname $_FILES['archivo']['name'];
 
          
$vartemp $_FILES['archivo']['tmp_name'];
         

          
$mail = new PHPMailer();
          
$mail->IsSMTP();
          
$mail->SMTPAuth true;
 
          
$mail->Host "mail.xxx.com.ar";
              
$mail->Username "[email protected]"
          
$mail->Password "xxxx"

          
$mail->From "[email protected]";

          
$mail->FromName "xxx.com.ar";
          

          
$mail->Subject $_POST['asunto'];

          
$mail->AddAddress($_POST['destino']);
          
$mail->AddBCC($_POST['mensaje1'] );
        

          if (
$varname != "") {

              
$mail->AddAttachment($vartemp$varname);

          }

          
$body "<strong>Mensaje</strong><br><br>";
          

          
$body.= $_POST['mensaje']."<br>";

          
$body.= "<i>Enviado por http://www.xxx.com.ar . </i></p>
<p><i>Si no desea recibir mas información, responda este correo con asunto ELIMINAR.</i>
</p>"
;

          
$mail->Body $body;
    

          
$mail->IsHTML(true);

          
$mail->Send();

      }
echo 
"su mensaje ha sido enviado satisfactoriamente";

?>

Última edición por GatorV; 11/02/2009 a las 13:36
  #12 (permalink)  
Antiguo 11/02/2009, 13:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: class.phpmailer no funciona en apache2 y php5

Como te comente necesitas llamar varias veces a addBCC, lo que te recomiendo es hacerlo con un foreach().

Saludos
  #13 (permalink)  
Antiguo 11/02/2009, 14:02
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Respuesta: class.phpmailer no funciona en apache2 y php5

aunque no lo tome desde una bd? con un foreach() se puede? solo los pego y los paso por POST .
  #14 (permalink)  
Antiguo 11/02/2009, 14:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: class.phpmailer no funciona en apache2 y php5

Puedes usar explode() para separar los datos que te vienen por POST.

Saludos
  #15 (permalink)  
Antiguo 12/02/2009, 06:16
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Respuesta: class.phpmailer no funciona en apache2 y php5

Hola Gator, 1º como siempre mil gracias por tú dedicación y paciencia.

Le agregué este foreach y si envia a destino y a bcc pero en bcc sólo envía el primer correo desde la , no envía nada.

Código PHP:
          $mail->AddAddress($_POST['destino']); 
           }
          
  if(
$_POST['mensaje1']){
        
$sa explode(",",$_POST['mensaje1']);
        foreach(
$sa as $mensaje1){
            
$mail->AddBCC($mensaje1);
        } 
  #16 (permalink)  
Antiguo 12/02/2009, 12:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: class.phpmailer no funciona en apache2 y php5

Prueba hacer un var_dump($sa) para que veas que datos esta agregando, es recomendable aplicar trim() al destino para evitar mails con espacios en blanco.

Saludos
  #17 (permalink)  
Antiguo 12/02/2009, 14:22
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Respuesta: class.phpmailer no funciona en apache2 y php5

AHH bueno GatorV hasta ahí no llego me llevó un dia entender ese foreach.

Otra cosa con la class.phpmailer anterior en php4 funcionaba bien, que puede cambiar en 5 al pasarla en post para que no la tome?
  #18 (permalink)  
Antiguo 12/02/2009, 15:27
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: class.phpmailer no funciona en apache2 y php5

Porque no te bajas phpMailer para la version 5 de PHP? http://sourceforge.net/project/showf...kage_id=252700
__________________
Sin Ideas
  #19 (permalink)  
Antiguo 12/02/2009, 16:41
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Respuesta: class.phpmailer no funciona en apache2 y php5

Cita:
Iniciado por oso96_2000 Ver Mensaje
Porque no te bajas phpMailer para la version 5 de PHP? http://sourceforge.net/project/showf...kage_id=252700
Hola, actualmente tenía la versión 2.1 ahora siguiendo tu consejo instalé la 2.3 e igualmente no me toma las direcciones en AddBcc de $_POST['mensaje1']

es decir si paso una sola si la toma y la envía pero si pongo ya dos correos no envía nada.
  #20 (permalink)  
Antiguo 12/02/2009, 17:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: class.phpmailer no funciona en apache2 y php5

Es muy raro, para eso sirve el método addBCC, por eso te recomendaba aplicar trim() ya que si dejas un correo luego con espacios tiende a fallar el envio.

Saludos
  #21 (permalink)  
Antiguo 12/02/2009, 17:49
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Respuesta: class.phpmailer no funciona en apache2 y php5

Si realmente es increíble!!

En otro server con php4 funciona perfecto pasa todas las direcciones simplemente con $mail->AddBCC ( $_POST['mensaje1'] );

usando el mismo scritp.
Me estoy volviendo loco tengo 2 clientes que no pueden enviar y en 2 dias no lo puedo solucionar.
  #22 (permalink)  
Antiguo 12/02/2009, 18:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: class.phpmailer no funciona en apache2 y php5

En ese caso puede que tu problema este en el server SMTP que estes usando y no en la clase PHPMailer.

Saludos
  #23 (permalink)  
Antiguo 12/02/2009, 19:13
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Respuesta: class.phpmailer no funciona en apache2 y php5

Cita:
Iniciado por GatorV Ver Mensaje
En ese caso puede que tu problema este en el server SMTP que estes usando y no en la clase PHPMailer.

Saludos

Eso lo consulto en el phpinfo() ?

SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
  #24 (permalink)  
Antiguo 12/02/2009, 21:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: class.phpmailer no funciona en apache2 y php5

Pues no realmente tienes que contactar a tu servicio de hosting para que arreglen eso ya que si en un sitio te funciona y en otro no, es el hosting el problema.

Saludos
  #25 (permalink)  
Antiguo 13/02/2009, 06:18
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Respuesta: class.phpmailer no funciona en apache2 y php5

evidentemente es el servidor, lo he probado anoche usando el smtp de gmail por el puerto 465 y va perfecto.

con el foreach .

asi me da por pto 25 o 26 en mi server.

Que puede tener mal el server? un puerto bloqueado?


Esto me da si no pongo localhost:

Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /home/...class.smtp.php on line 122

Warning: fsockopen() [function.fsockopen]: unable to connect to mail.fonoaudiologos.org.ar:26 (php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution) in /home/..../class.smtp.php on line 122

Última edición por mvlsistemas; 13/02/2009 a las 06:53
  #26 (permalink)  
Antiguo 13/02/2009, 10:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: class.phpmailer no funciona en apache2 y php5

Como te comento, necesitas contactar a tu hosting desde código no puedes arreglar nada ya que es evidente que el problema es tu servidor SMTP.

Saludos
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 21:57.