Hazlo así:
Envías el correo y luego lo redirecciona a otra página donde se forza la descarga del archivo:
Envio de correo:
$asunto = "descargade: ".$nom;
// $nom es el nombre del archivo descargado
$to = "email de tu cliente @servidor.com";
$subject = $asunto;
$bound_text = "----*%$!$%*";
$bound = "--".$bound_text."\r\n";
$bound_last = "--".$bound_text."--\r\n";
// OJO con la siguiente instruccion. Es tu correo creado en tu servidor... así evitas el spam
// en mi caso es: [email protected]
$headers = "From: [email protected].\r\n";
$headers .= "MIME-Version: 1.0\r\n" .
"Content-Type: multipart/mixed; boundary=\"$bound_text\""."\r\n" ;
$message = " you may wish to enable your email program to accept HTML \r\n".
$bound;
$message .=
'Content-Type: text/html; charset=UTF-8'."\r\n".
'Content-Transfer-Encoding: 7bit'."\r\n\r\n".
'
aqui va el texto del mensaje
'."\n\n".
$bound;
$file = file_get_contents("");
$message .= ""
.$bound_last;
$sent = mail($to, $subject, $message, $headers) ;
luego lo llevas a forzar la descarga del archivo...
<?php
$sDirectorio = "/descargas/"; //Introducir directorio de descargas
$sUrlDescargas = $_SERVER["DOCUMENT_ROOT"].$sDirectorio;
$vBarras = array("/", "\\");
$sDocumento = $sUrlDescargas.str_replace($vBarras, "_", $_GET["doc"]);
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=".basename($_GET["doc"]));
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($sDocumento));
if (!@readfile($sDocumento))
echo "<br>Ha sido imposible descargar el fichero";
?>
Creo que te funciona.
Si tienes problemas nos escribes...
SiREZ