Foros del Web » Programando para Internet » PHP »

Adjuntar archivo por correo usando la funcion mail()

Estas en el tema de Adjuntar archivo por correo usando la funcion mail() en el foro de PHP en Foros del Web. Hola amigos tengo la sig. funcion para adjuntar un archivo, que funciona correctamente, es decir me adjunta bien el archivo que quiero enviar y me ...
  #1 (permalink)  
Antiguo 20/11/2007, 16:08
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 17 años, 4 meses
Puntos: 20
Adjuntar archivo por correo usando la funcion mail()

Hola amigos tengo la sig. funcion para adjuntar un archivo, que funciona correctamente, es decir me adjunta bien el archivo que quiero enviar y me muestra el texto que le agregue, ademas de que me envia lo que deseo en formato hml, mi funcion CrearHtmlMinuta($Cadena, $Asunto) lo que hace es crearme una pagina html con una tabla, recogiendo los datos de un archivo que tengo almacenado...
Funciona correctamente con el outlook y el thuderbird (Icedove) pero cuando lo envio a hotmail y checo el correo con el navegador, solo me muestra los encabezados.. pongo el ejemplo de lo que me muestra:

Código PHP:
Minuta20del dia 2007-11-16‏                                               De:                 [email protected]                                           Enviado:             martes, 20 de noviembre de 2007 03:47:59 p.m.                      
Para:              xxx@xxx.comxx@hotmail.com                                                                             [IMG]http://gfx2.hotmail.com/mail/w2/ltr/i_attach.gif[/IMG]                     2007-11-1...xls (3.4 KB), ATT00001 (5.5 KB), Mail message  (0.1 KB) 
y ya no me muestra el mensaje html ni el de puro texto, solo dandole click en cada archivo adjunto.
Espero haberme explicado algo claro al menos para que me entiendan por que solo me los adjunta y no me los muestra como yo quisiera, alguna sugerencia sobre como modificar los encabezados o el body del mensaje?
Ahi va la funcion que tengo
Código PHP:
function EnviarMinuta($Archivo$Cadena$Mensaje$Asunto$Para$De)
{
    
$DirLocal='/XXX/minutas/';

    
$buffer implode(""file("$DirLocal$Archivo"));                // Leer fichero
    
$buffer=chunk_split(base64_encode($buffer));        // Codificación en base64 y divido
    // Cabeceras
    
$Cabecera "From: $De\n";
    
$Cabecera .= "Return-Path: <$From>\n";
    
$Cabecera .= "Return-Receipt-To: <$From>\n";        //Notificar de leido
    
$Cabecera .= "MIME-version: 1.0\n";
    
$Cabecera .= "Content-type: multipart/mixed; ";
    
$Cabecera .= "boundary=\"Message-Boundary\"\n";
    
$Cabecera .= "Content-transfer-encoding: 7BIT\n";
    
$Cabecera .= "X-attachments: $DirLocal$Archivo\n\n";

    
// Adjuntar el fichero
    
$Msj "\n\n--Message-Boundary\n";
    
$Msj .= "Content-type: Binary; name='$Archivo'\n";
    
$Msj .= "Content-Transfer-Encoding: BASE64\n";
    
$Msj .= "Content-disposition: attachment; filename=$Archivo\n\n";
    
$Msj .= "$buffer\n";

    
// Mensaje en html
    
$Msj .= "\n\n--Message-Boundary\n";
    
$Msj .= "Content-Type: text/HTML; charset=ISO-8859-1\n";
    
$Msj .= "Content-Transfer-Encoding: 8bit\n\n";
    
$Cadena=CrearHtmlMinuta($Cadena$Asunto);        //Lo convierto a pagina html
    
$Msj .= $Cadena;

    
$Msj .= "\n\n--Message-Boundary\n";
    
$Msj .= "Content-type:  text/plain; charset=iso-8859-1\n";
    
$Msj .= "Content-transfer-encoding: 7BIT\n";
    
$Msj .= "Content-description: Mail message body\n\n";
    
$Msj .= "$Mensaje\n";    //Agrego el contenido del mensaje
    
$Error=mail("$Para"$Asunto$Msj$Cabecera);
    if (!
$Error)        // Envio de mail y regreso el estado del envio
        
return true;
    else
        return 
$Error

Última edición por Sergestux; 21/11/2007 a las 14:42
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

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 13:47.