Les incluyo lo necesario para adjuntar un archivo ->
AL INICIO DEBE IR EL CORREO DESTINO, EL ASUNTO Y EL MENSAJE!!!.
AL FINAL DEBE IR mail($correo, $asunto, $mensaje, $headers);
Cita: $headers = "From:
[email protected]\n";
$headers .= "Reply-To:
[email protected]\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"MIME_BOUNDRY\"\n";
$headers .= "This is a multi-part message in MIME format.\n";
$fp = fopen(($_FILES['miarchivo']['tmp_name']),"r");
$str = fread($fp, filesize($_FILES['miarchivo']['tmp_name']));
$str = chunk_split(base64_encode($str));
$fp = fclose($fp);
$message = "--MIME_BOUNDRY\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n";
$message .= "\n";
$message .= "$mensaje";
$message .= "\n";
$message .= "--MIME_BOUNDRY\n";
$message .= "Content-Type: application/octet-stream; name=\"nuevo.txt\"\n";
$message .= "Content-disposition: attachment\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "\n";
$message .= "$str\n";
$message .= "\n";
$message .= "--MIME_BOUNDRY--\n";
Comentarios ->
1.- se define el hecho que el correo contendra varias fronteras MIME (MIME BOUNDRY).
2.- se toma el archivo proveniente de un upload o en su defecto del directorio o ruta donde fisicamente se encuentra el archivo, se codifica con la funcion base64_encode.
3.- se define la primera frontera del correo que involucra el mensaje que en este caso es de contenido text/plain, utiliza los charset (iso-8859-1 o bien puede ser utf... y se establece que es "quoted-printable".
4.- se establece la ultima frontera que contiene el archivo adjunto definido por $str con contenido application/octet-stream (que es para archivos de texto y debera variar segun el archivo que se envie, para imagenes jpg seria image/jpeg, etc).
Se establece su disposicion a ser un adjunto; es decir que debe ser tomado como adjunto cuando el servidor de correo del destinatario lo reciba y se debe indicar lo a la funcion que se utilizo para codificar el archivo, que en este caso es base64.
Asi termina el codigo
Saludos
Franco
![sonriente](http://static.forosdelweb.com/fdwtheme/images/smilies/smile.png)
![Afirmando](http://static.forosdelweb.com/fdwtheme/images/smilies/afirmar.gif)
![sonriente](http://static.forosdelweb.com/fdwtheme/images/smilies/smile.png)
P.S. No omito manifestar que el tipo de archivo es necesario saberlo para poder establecer los content-type que se enviaran en la cabecera del correo; esto es muy importante y para generalizar el codigo pueden hacer algo asi ->
if($type == "image/gif") {
$message .= "Content-Type: image/gif \n";
etc etc etc...
}