Foros del Web » Programando para Internet » PHP »

mails y archivos adjuntos

Estas en el tema de mails y archivos adjuntos en el foro de PHP en Foros del Web. Que tal a todos! Quisiera saber si hay alguna forma de enviar un email con un archivo adjunto usando la función mail()? De antemano Gracias ...
  #1 (permalink)  
Antiguo 15/10/2007, 19:25
Avatar de Miztli  
Fecha de Ingreso: abril-2007
Mensajes: 39
Antigüedad: 17 años
Puntos: 1
Pregunta mails y archivos adjuntos

Que tal a todos!

Quisiera saber si hay alguna forma de enviar un email con un archivo adjunto usando la función mail()?

De antemano Gracias
Miztli
  #2 (permalink)  
Antiguo 15/10/2007, 19:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: mails y archivos adjuntos

Si es posible, pero tienes que codificar tu email para agregar el archivo, es un proceso algo complejo, por lo que te recomiendo usar una clase como PHPMailer para adjuntar el archivo de una forma mas sencilla.

Saludos.
  #3 (permalink)  
Antiguo 16/10/2007, 00:21
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 9 meses
Puntos: 19
De acuerdo Re: mails y archivos adjuntos

dejemos de complicar la vida con la clase PHP-MAILER y simplifiquemos la vida

aca te dejo un codigo mas simple que esa cosa que odio de Php mailer
solamente completa los campos y listo
ejecutalo, lo que si guardalo en un archivo PHP con extencion .php3

enviar.php3
Código PHP:
$to "[email protected]"
$subject "Te envio un mail"
$text "Hola adjunto tenes el archivo"
$from "[email protected]"
$file "archivo.jpg"
$type "image/jpeg"

$content fread(fopen($file,"r"),filesize($file));
    
$content chunk_split(base64_encode($content));
    
$uid strtoupper(md5(uniqid(time())));
    
$name basename($file);

    
$header "From: $from\nReply-To: $from\n";
    
$header .= "MIME-Version: 1.0\n";
    
$header .= "Content-Type: multipart/mixed; boundary=$uid\n";

    
$header .= "--$uid\n";
    
$header .= "Content-Type: text/plain\n";
    
$header .= "Content-Transfer-Encoding: 8bit\n\n";
    
$header .= "$text\n";

    
$header .= "--$uid\n";
    
$header .= "Content-Type: $type; name=\"$name\"\n";

    
$header .= "Content-Transfer-Encoding: base64\n";
    
$header .= "Content-Disposition: attachment; filename=\"$name\"\n\n";
    
$header .= "$content\n";

    
$header .= "--$uid--";

    
mail($to$subject""$header); 
en type pone el tipo de archivo uqe estas enviando, y listo asunto solucionado, cualquier problema avisame

Saludos
  #4 (permalink)  
Antiguo 16/10/2007, 11:05
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: mails y archivos adjuntos

Código HTML:
<tr bgcolor="#993333"> 
    <td colspan="4"><form action="mail.php" method="post" enctype="multipart/form-data">
      <table width="500" border="0" align="center" cellpadding="4" cellspacing="4" bgcolor="#CC6666">
        <tr bgcolor="#993333">
          <td>Destinatario</td>
          <td><input type="text" name="destino" ></td>
        </tr>
        <tr bgcolor="#993333">
          <td>Asunto</td>
          <td><br>
              <input type="text" name="asunto"></td>
        </tr>
        <tr bgcolor="#993333">
          <td>Flyer</td>
          <td><input type="file" name="archivo"></td>
        </tr>
        <tr bgcolor="#993333">
          <td>Mensaje</td>
          <td><textarea name="mensaje"></textarea></td>
        </tr>
        <tr bgcolor="#993333">
          <td><span class="Estilo6"></span></td>
          <td><input type="submit" name="btsend" value="Enviar Email">
              <input type="hidden" name="action" value="send" /></td>
        </tr>
        <tr bgcolor="#993333">
          <td colspan="2"><span class="Estilo6"></span><span class="Estilo6"></span><span class="Estilo6"></span></td>
          </tr>
      </table>
    </form></td>
  </tr> 
mail.php
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 "Z";

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

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

          if (
$varname != "") {

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

          }

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

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

          
$body.= "<i>Enviado por http://www.z.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";

?>
no olvides de subir al servidor la class.phpmailer.php class.smtp.php
  #5 (permalink)  
Antiguo 16/10/2007, 13:33
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: mails y archivos adjuntos

por que debe ser php3 ???
__________________
Nuevamente a las pistas ...
  #6 (permalink)  
Antiguo 16/10/2007, 14:31
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 9 meses
Puntos: 19
Re: mails y archivos adjuntos

queda mas lindo jajajaj
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 18:16.