La Web del Programador: Comunidad de Programadores
 
    Pregunta:  29698 - ARCHIVO ADJUNTO
Autor:  Evelin Assum
Quisiera saber como hago para enviar un archivo adjunto, trabajo con php3 y tengo un formulario en el que deseo que sea llenado y se adjunte un archivo el que debe ser enviado por mail, si alguien sabe como hacerlo ruego me ayude.

Muchas Gracias

  Respuesta:  ludwing van Ambrsosio
Prueba esto:

//Creamos el cuerpo del mensaje
$mensaje = "Este texto va en el cuerpo del correo\n";
$mensaje .= "Este también\n";
...

// Cabeceras para los adjuntos
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-Type: multipart/mixed;
boundary="------------040408090204060200060709"' . "\n";

// Componemos el mensaje para mandar los adjuntos
$message = "\n\nThis is a multi-part message in MIME format.\n";
$message .= "--------------040408090204060200060709\n";
$message .= "Content-Type: text/plain; charset=ISO-8859-1; format=flowed\n";
$message .= "Content-Transfer-Encoding: 7bit\n";
$message .= "\n$mensaje\n";

// Abrimos el adjunto y lo codificamos
$handle = fopen($_FILES['dokumentua']['tmp_name'],'rb');
$file_content = fread($handle,filesize($_FILES['dokumentua']['tmp_name']));
fclose($handle);
$encoded = chunk_split(base64_encode($file_content));

// Insertamos el adjunto en el correo
$message .= "--------------040408090204060200060709\n";
$message .= "Content-Type: " . $_FILES['dokumentua']['type'] . "; name=\"" . $_FILES['dokumentua']['name'] . "\"\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "Content-Disposition: inline; filename=\"" . $_FILES['dokumentua']['name'] . "\"\n\n";
$message .= "$encoded";

// Cerramos el "apartado" de los adjuntos
$message .= "\n--------------040408090204060200060709--";

// Se manda el correo
mail ("[email protected]", "Asunto", $message, $headers)

Espero que haya quedado bien el código después de los "copiar+pegar" que he hecho...