Foros del Web » Programando para Internet » PHP »

Archivo con phpmailer

Estas en el tema de Archivo con phpmailer en el foro de PHP en Foros del Web. Hola amigos de ForosdW. Yo quiero poner un formulario en mi pagina web en el cual le pido a los visitantes unos datos y su ...
  #1 (permalink)  
Antiguo 02/03/2008, 11:51
 
Fecha de Ingreso: febrero-2008
Ubicación: Panamá
Mensajes: 145
Antigüedad: 16 años, 1 mes
Puntos: 0
Archivo con phpmailer

Hola amigos de ForosdW.
Yo quiero poner un formulario en mi pagina web en el cual le pido a los visitantes unos datos y su foto, pero trate de hacerlo con mail() y no se puede no me manda la foto.

Entonces me dijeron que la unica forma de hacerlo es con el phpmailer(), pero ya configure el codigo ya nada no me sale nada, no se envia ningun archivo al correo que le pongo.
A ver si me dan una ayudita usted que son los masters....

Aquí les dejo el codigo que hice
Código PHP:
<?
        $adireccion
"mi email"
      
$contenidom"Nombre: ".$nombre."\n"
                      
."Experiencia: ".$experiencia."\n"
                          
      
//pasamos a enviar el correo

      // primero hay que incluir la clase phpmailer para poder instanciar 
      //un objeto de la misma
      
require ("includes/class.phpmailer.php");

      
//instanciamos un objeto de la clase phpmailer al que llamamos 
      //por ejemplo mail
      
$mail = new phpmailer();

      
//Definimos las propiedades y llamamos a los métodos 
      //correspondientes del objeto mail

      //Con PluginDir le indicamos a la clase phpmailer donde se 
      //encuentra la clase smtp que como he comentado al principio de 
      //este ejemplo va a estar en el subdirectorio includes
      
$mail->PluginDir "includes/";

      
//Con la propiedad Mailer le indicamos que vamos a usar un 
      //servidor smtp                            
      
$mail->Mailer "smtp";

      
//Asignamos a Host el nombre de nuestro servidor smtp
      
$mail->Host "mail.caminoalacima.com";
      
      
//Le indicamos que el servidor smtp requiere autenticación
      
$mail->SMTPAuth true;

      
//Le decimos cual es nuestro nombre de usuario y password
      
$mail->Username "mi usuario ";
      
$mail->Password "mi contraseña";

      
//el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar 
      //una cuenta gratuita y voy a usar attachments, por tanto lo pongo a 120  
      
$mail->Timeout=20;

      
//Indicamos el fichero a adjuntar si el usuario seleccionó uno en el formulario
      
if ($foto !="none") {
    
$mail->AddAttachment($foto,$foto_name);
      }

      
//Indicamos cuales son las direcciones de destino del correo y enviamos 
      //los mensajes
     
$mail->AddAddress($adireccion);

    
//se envia el mensaje, si no ha habido problemas la variable $success 
    //tendra el valor true
    
$exito $mail->Send();

    
//Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas 
    //como mucho para intentar enviar el mensaje, cada intento se hara 5 s
    //segundos despues del anterior, para ello se usa la funcion sleep
     
$intentos=1
       while((!
$exito)&&($intentos<5)&&($mail->ErrorInfo!="SMTP Error: Data not accepted")){
       
sleep(5);
            
//echo $mail->ErrorInfo;
            
$exito $mail->Send();
            
$intentos=$intentos+1;                
       }

    
//La clase phpmailer tiene un pequeño bug y es que cuando envia un mail con
    //attachment la variable ErrorInfo adquiere el valor Data not accepted, dicho 
    //valor no debe confundirnos ya que el mensaje ha sido enviado correctamente
    
if ($mail->ErrorInfo=="SMTP Error: Data not accepted") {
       
$exito=true;
        }
    
    echo 
"<a href='$experiencia.html'> VOLVER AL FORMULARIO </a>";
  
     
?>
Gracias por la ayuda que puedan brindarme....
  #2 (permalink)  
Antiguo 02/03/2008, 12:07
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Archivo con phpmailer

$exito = $mail->Send();

no se dr phpmailer y si esta es la funcion que envia el email, entonces creo que va vacia

deberia de ser algo asi,

$exito = $mail->Send($contenidom, $foto);

creo,

cuando se envia un email sin foto la funcion mail va asi:

mail ($adireccion, $asunto, $contenidomail, $dedireccion);


son las variables que contienen la informacion que quieres enviar.
  #3 (permalink)  
Antiguo 02/03/2008, 12:54
 
Fecha de Ingreso: febrero-2008
Ubicación: Panamá
Mensajes: 145
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Archivo con phpmailer

Nada amigo jaronu,
ya lo intente y no pasa nada, cuando le doy click en enviar se queda en una pagina en blanco y no envia ningún mensaje.....

No se que pueda pasar...?
  #4 (permalink)  
Antiguo 02/03/2008, 13:16
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Archivo con phpmailer

prueba con esta linea

$exito = $mail->Send();
dejala asi:

$exito = Send($mail);



y si no funciona, el codigo que mandas requiere otro archivo, dejamelo ver, puede ser que tus variables vengan vacias

require ("includes/class.phpmailer.php");
  #5 (permalink)  
Antiguo 02/03/2008, 13:21
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Archivo con phpmailer

pero si no te da ningun eror sera de la configuracion que tengas del php de tu hosting, o si trabajas en local no tengas configurado el servicio de SMTP
  #6 (permalink)  
Antiguo 02/03/2008, 13:22
 
Fecha de Ingreso: febrero-2008
Ubicación: Panamá
Mensajes: 145
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Archivo con phpmailer

Hey amigo jaronu ya me envia la foto pero ahora no me sale el
Código PHP:
$contenidom 
sabes que es lo que pasaba, que arriba donde había declarado las variables no les había puesto el punto y coma al final jejejejej.
ahora que crees que pueda ser lo de las variables?????????
  #7 (permalink)  
Antiguo 02/03/2008, 13:29
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Archivo con phpmailer

enseñame el codigo otra vez como lo tienes ahora, que manda la foto
  #8 (permalink)  
Antiguo 02/03/2008, 13:46
 
Fecha de Ingreso: febrero-2008
Ubicación: Panamá
Mensajes: 145
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Archivo con phpmailer

Este es el codigo que me envia la foto
Código PHP:
<?
        $adireccion
"";
      
$contenidom"Nombre: ".$nombre."\n"
                      
."Experiencia: ".$experiencia."\n";
                          
      
//pasamos a enviar el correo

      // primero hay que incluir la clase phpmailer para poder instanciar 
      //un objeto de la misma
      
require ("includes/class.phpmailer.php");

      
//instanciamos un objeto de la clase phpmailer al que llamamos 
      //por ejemplo mail
      
$mail = new phpmailer();

      
//Definimos las propiedades y llamamos a los métodos 
      //correspondientes del objeto mail

      //Con PluginDir le indicamos a la clase phpmailer donde se 
      //encuentra la clase smtp que como he comentado al principio de 
      //este ejemplo va a estar en el subdirectorio includes
      
$mail->PluginDir "includes/";

      
//Con la propiedad Mailer le indicamos que vamos a usar un 
      //servidor smtp                            
      
$mail->Mailer "smtp";

      
//Asignamos a Host el nombre de nuestro servidor smtp
      
$mail->Host "mail.caminoalacima.com";
      
      
//Le indicamos que el servidor smtp requiere autenticación
      
$mail->SMTPAuth true;

      
//Le decimos cual es nuestro nombre de usuario y password
      
$mail->Username "";
      
$mail->Password "";

      
//el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar 
      //una cuenta gratuita y voy a usar attachments, por tanto lo pongo a 120  
      
$mail->Timeout=20;

      
//Indicamos el fichero a adjuntar si el usuario seleccionó uno en el formulario
      
if ($foto !="none") {
    
$mail->AddAttachment($foto,$foto_name);
      }

      
//Indicamos cuales son las direcciones de destino del correo y enviamos 
      //los mensajes
     
$mail->AddAddress($adireccion);

    
//se envia el mensaje, si no ha habido problemas la variable $success 
    //tendra el valor true
    
$exito $mail->Send($contenidom$foto);

    
//Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas 
    //como mucho para intentar enviar el mensaje, cada intento se hara 5 s
    //segundos despues del anterior, para ello se usa la funcion sleep
     
$intentos=1
       while((!
$exito)&&($intentos<5)&&($mail->ErrorInfo!="SMTP Error: Data not accepted")){
       
sleep(5);
            
//echo $mail->ErrorInfo;
            
$exito $mail->Send($contenidom$foto);
            
$intentos=$intentos+1;                
       }

    
//La clase phpmailer tiene un pequeño bug y es que cuando envia un mail con
    //attachment la variable ErrorInfo adquiere el valor Data not accepted, dicho 
    //valor no debe confundirnos ya que el mensaje ha sido enviado correctamente
    
if ($mail->ErrorInfo=="SMTP Error: Data not accepted") {
       
$exito=true;
        }
    
    echo 
"<a href='www.caminoalcima.com/experiencia.html'> VOLVER AL FORMULARIO </a>";
  
     
?>
ah y tu sabes que dirección que le pongo abajo en echo no me quiere hacer referencias tampoco....??
  #9 (permalink)  
Antiguo 02/03/2008, 14:49
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Archivo con phpmailer

es que no se que hace eil archivo:

require ("includes/class.phpmailer.php");

que incluyes en el codigo,

fijate que la variable $foto esta declarada despues de incluir ese archivo class.phomailer.php
y viene con informacion, lo que no se es que ha hecho el archivo esa con la variable $contenidom que te la devuelve vacia.


poque como ves aqui:

$mail->AddAddress($adireccion);

la variable $adireccion pasa a ser un valor de la vbariable $mail y no se que ha hecho el archivo ese con las variables $mail y $contenidom
  #10 (permalink)  
Antiguo 02/03/2008, 15:37
 
Fecha de Ingreso: febrero-2008
Ubicación: Panamá
Mensajes: 145
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Archivo con phpmailer

Bueno lo de "require" creo que es necesario para poder mandar mensajes con archivos adjuntos que sería mi caso.

Y tienes razon con lo de las variables que pasan a formar parte de $mail, así que pues yo menos entiendo porque no las manda.

Y la ultima parte donde le digo que haga referencia a la misma pagina y se devuelva donde esta el formulario tampoco sirve así que bueno aún estoy a pie con esto...

cualquiera cosa que descubras me la cuentas.....
  #11 (permalink)  
Antiguo 02/03/2008, 15:46
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Archivo con phpmailer

cambia el ultimi if por este


if ($mail->ErrorInfo=="SMTP Error: Data not accepted") {
$exito=true;

?><SCRIPT LANGUAGE="javascript">
location.href = "'www.caminoalcima.com/experiencia.html";
</SCRIPT><?

echo "<a href='www.caminoalcima.com/experiencia.html'> VOLVER AL FORMULARIO </a>"; } ?>




enseñame ese otro archivo el

class.phpmailer.php

Última edición por jaronu; 02/03/2008 a las 15:52
  #12 (permalink)  
Antiguo 02/03/2008, 15:57
 
Fecha de Ingreso: febrero-2008
Ubicación: Panamá
Mensajes: 145
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Archivo con phpmailer

Ups bueno el codigo es mas largo de lo se permite escribir aquí,
así que te mando la referencia de donde me dijeron que lo usara y unos ejemplos.
http://www.programacion.net/php/articulo/phpmailer/
  #13 (permalink)  
Antiguo 02/03/2008, 16:37
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Archivo con phpmailer

me acabo de instalar en el host el ejemplo2 pero me da error de

Problemas enviando correo electrónico a [email protected]
SMTP Error: Could not authenticate VOLVER AL FORMULARIO

sera que me tengo que crear una cuenta en algun sitio y no tengo tiempo
parece que funcion, carga el archivo, eso si lo hace, revisa las instrucciones del phpmailer
algo se te paso por alto
si te envia la foto te ha de enviar lo demas, y si pone el script de java que te di, despues de mandar el form te redireccionara al form, aunque no entiendo por que desaparece el form, el que yo mhago con php no desaparece, solo se le borra la informacion,

me resulta interesante esta aplicacion para mi pagina, que mis usuarios puedan enviar fotos de mi pagina a otros es inyteresante, intentare hacer una palicacion para ello y ya la posteare en el foro.
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:03.