Foros del Web » Programando para Internet » PHP »

ayuda para poder adjuntar img en mail

Estas en el tema de ayuda para poder adjuntar img en mail en el foro de PHP en Foros del Web. estoy aprendiendo a enviar emails a travez de htmlMimeMail5.php, el email es enviado pero el archivo adjunto llega corruptos, las imagenes llegan vacias y no ...
  #1 (permalink)  
Antiguo 03/09/2009, 15:06
 
Fecha de Ingreso: julio-2009
Mensajes: 178
Antigüedad: 14 años, 9 meses
Puntos: 1
ayuda para poder adjuntar img en mail

estoy aprendiendo a enviar emails a travez de htmlMimeMail5.php, el email es enviado pero el archivo adjunto llega corruptos, las imagenes llegan vacias y no se como resolverlo
  #2 (permalink)  
Antiguo 03/09/2009, 15:09
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: ayuda para poder adjuntar img en mail

te recomiendo usar PhpMailer tiene una fucion para adjuntar, AddAttachment()
  #3 (permalink)  
Antiguo 03/09/2009, 21:04
 
Fecha de Ingreso: julio-2009
Mensajes: 178
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: ayuda para poder adjuntar img en mail

gracis, se ve bueno, lo probaré, aunque como estoy aprendiendo pues tengo que seguir el curso para no perderme
  #4 (permalink)  
Antiguo 03/09/2009, 21:07
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: ayuda para poder adjuntar img en mail

Cita:
Iniciado por SJENERT Ver Mensaje
gracis, se ve bueno, lo probaré, aunque como estoy aprendiendo pues tengo que seguir el curso para no perderme
yo tambien opto por la opcion de bioxido, mas aun cuando estas aprendiendo, el codigo es bastante intuitivo y de facil adaptacion para lo que necesitas
  #5 (permalink)  
Antiguo 04/09/2009, 14:33
 
Fecha de Ingreso: julio-2009
Mensajes: 178
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: ayuda para poder adjuntar img en mail

lo probé y no me funciono, almenos el otro si me sirvio a la primera, lo malo es que no llegan bien los archivos

esre es el codigo
Código ejemplo:
Ver original
  1. <?
  2.    
  3.    //Es necesario que al menos halla una dirección de destino
  4.    $error="";
  5.  
  6.    if ($enviar) {
  7.       if ((!$email1) && (!$email2)) {
  8.     $error.="Debe indicar al menos una dirección de destino";
  9.       }
  10.    }
  11.    
  12.    if ($enviar && !$error) {
  13.  
  14.       //creamos un array que estará formado por las direcciones de destino
  15.       if ($email1) {
  16.     $direcciones["direccion1"]=$email1;
  17.       }
  18.       if ($email2) {
  19.     $direcciones["direccion2"]=$email2;
  20.       }
  21.  
  22.    
  23.       //pasamos a enviar el correo
  24.  
  25.       // primero hay que incluir la clase phpmailer para poder instanciar
  26.       //un objeto de la misma
  27.       require "includes/class.phpmailer.php";
  28.  
  29.       //instanciamos un objeto de la clase phpmailer al que llamamos
  30.       //por ejemplo mail
  31.       $mail = new phpmailer();
  32.  
  33.       //Definimos las propiedades y llamamos a los métodos
  34.       //correspondientes del objeto mail
  35.  
  36.       //Con PluginDir le indicamos a la clase phpmailer donde se
  37.       //encuentra la clase smtp que como he comentado al principio de
  38.       //este ejemplo va a estar en el subdirectorio includes
  39.       $mail->PluginDir = "includes/";
  40.  
  41.       //Con la propiedad Mailer le indicamos que vamos a usar un
  42.       //servidor smtp                            
  43.       $mail->Mailer = "smtp";
  44.  
  45.       //Asignamos a Host el nombre de nuestro servidor smtp
  46.       $mail->Host = "localhost"; //ya probe smtp.localhost.com
  47.      
  48.       //Le indicamos que el servidor smtp requiere autenticación
  49.       $mail->SMTPAuth = true;
  50.  
  51.       //Le decimos cual es nuestro nombre de usuario y password
  52.       $mail->Username = "jordanmen"; //ya probe [email protected]
  53.       $mail->Password = "oooooo";
  54.      
  55.       //Indicamos cual es nuestra dirección de correo y el nombre que
  56.       //queremos que vea el usuario que lee nuestro correo
  57.       $mail->From = "[email protected]";
  58.  
  59.       $mail->FromName = "Jordan probando el email";
  60.  
  61.       //Asignamos asunto y cuerpo del mensaje
  62.       //El cuerpo del mensaje lo ponemos en formato html, haciendo
  63.       //que se vea en negrita
  64.       $mail->Subject = "Prueba de phpmailer";
  65.       $mail->Body = "<b>Mensaje de prueba mandado con phpmailer  en formato html</b>";
  66.  
  67.       //Definimos AltBody por si el destinatario del correo no admite
  68.       //email con formato html
  69.       $mail->AltBody ="Mensaje de prueba mandado con phpmailer en formato texto";
  70.  
  71.       //el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar
  72.       //una cuenta gratuita y voy a usar attachments, por tanto lo pongo a 120  
  73.       $mail->Timeout=120;
  74.       //$archivo = "foto carne-1_PBY.jpg";
  75.  
  76.       //Indicamos el fichero a adjuntar si el usuario seleccionó uno en el formulario
  77.       if ($archivo !="none") {
  78.     $mail->AddAttachment($archivo,$archivo_name);
  79.       }
  80.  
  81.       //Indicamos cuales son las direcciones de destino del correo y enviamos
  82.       //los mensajes
  83.       reset($direcciones);
  84.       while (list($clave, $valor)=each($direcciones)) {
  85.     $mail->AddAddress($valor);
  86.  
  87.     //se envia el mensaje, si no ha habido problemas la variable $success
  88.     //tendra el valor true
  89.     $exito = $mail->Send();
  90.  
  91.     //Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas
  92.     //como mucho para intentar enviar el mensaje, cada intento se hara 5 s
  93.     //segundos despues del anterior, para ello se usa la funcion sleep
  94.     $intentos=1;
  95.     while((!$exito)&&($intentos<5)&&($mail->ErrorInfo!="SMTP Error: Data not accepted")){
  96.        sleep(5);
  97.            //echo $mail->ErrorInfo;
  98.            $exito = $mail->Send();
  99.            $intentos=$intentos+1;              
  100.     }
  101.  
  102.     //La clase phpmailer tiene un pequeño bug y es que cuando envia un mail con
  103.     //attachment la variable ErrorInfo adquiere el valor Data not accepted, dicho
  104.     //valor no debe confundirnos ya que el mensaje ha sido enviado correctamente
  105.     if ($mail->ErrorInfo=="SMTP Error: Data not accepted") {
  106.        $exito=true;
  107.         }
  108.        
  109.     if(!$exito)
  110.     {
  111.        echo "Problemas enviando correo electrónico a ".$valor;
  112.        echo "<br>".$mail->ErrorInfo;   
  113.     }
  114.     else
  115.     {
  116.        //Mostramos un mensaje indicando las direccion de
  117.        //destino y fichero  adjunto enviado en el mensaje  
  118.        $mensaje="<p>Has enviado un mensaje a:<br>";
  119.        $mensaje.=$valor." ";
  120.        if ($archivo !="none") {
  121.         $mensaje.="Con un fichero adjunto llamado ".$archivo_name;
  122.        }
  123.        $mensaje.="</p>";
  124.            echo $mensaje;
  125.  
  126.  
  127.     }
  128.     // Borro las direcciones de destino establecidas anteriormente
  129.         $mail->ClearAddresses();
  130.    
  131.     }
  132.     echo "<a href='$PHP_SELF'> VOLVER AL FORMULARIO</a>";
  133.    }
  134.    else {
  135.    ?>
  136.  
  137.    <HTML>
  138.    <BODY>
  139.    <? If ($error) echo "<font color='red'>$error</font>";?>
  140.    <FORM ENCTYPE="multipart/form-data" METHOD="post" ACTION="<?=$PHP_SELF?>">
  141.    <TABLE BORDER=0 ALIGN="CENTER">
  142.     <TR>
  143.       <TD>Direccion de destino1:</TD>
  144.       <TD><INPUT TYPE="text" NAME="email1" MAXLENGTH="30" SIZE="35"></TD>
  145.     </TR>
  146.       <TD>Direccion de destino2:</TD>
  147.       <TD><INPUT TYPE="text" NAME="email2" MAXLENGTH="35" SIZE="35"></TD>
  148.     </TR>
  149.       <TD>Fichero adjunto:</TD>
  150.       <input type="hidden" name="MAX_FILE_SIZE" value="307200">
  151.       <TD><INPUT TYPE="file" NAME="archivo" SIZE="35"></TD>
  152.     </TR>
  153.     <TR>
  154.       <TD COLSPAN="2" ALIGN="CENTER"><INPUT TYPE="submit" VALUE="Enviar" name="enviar"></TD>
  155.     </TR>
  156.     </TABLE>
  157.    </FORM>
  158.    </BODY>
  159.    </HTML>
  160.    <?
  161.    }
  162. ?>
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 22:14.