Tengo un problema que no encuentro en San Google o no se como buscarlo. Encontre este codigo en la red donde enviar un mail con archivo adjunto y funciona muy bien, el problema es cuando yo quiero definir la ruta del archivo.
Algo asi como enviar ya adjunto este archivo a un amigo
El codigo es el siguiente:
Código PHP:
function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{
$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";
if ($sDe)$sCabeceras = "From:".$sDe."\n";
else $sCabeceras = "";
$sCabeceras .= "MIME-version: 1.0\n";
foreach ($_POST as $sNombre => $sValor)
$sTexto = $sTexto."\n".$sNombre." = ".$sValor;
foreach ($_FILES as $vAdjunto)
{
if ($bHayFicheros == 0)
{
$bHayFicheros = 1;
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";
$sCabeceraTexto = "----_Separador-de-mensajes_--\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";
$sTexto = $sCabeceraTexto.$sTexto;
}
if ($vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";
$url = "/var/www/html/pruebas/mail/MailAdjunto/archivo.pdf";
$oFichero = fopen($url, 'r');
$sContenido = fread($oFichero, filesize($url));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}
/*
hice esta prueba para comrobar q realmente se puede llegar a este archivo
$nombre_archivo = '/var/www/html/pruebas/mail/MailAdjunto/archivo.pdf';
if (is_readable($nombre_archivo)) {
echo 'El archivo es legible';
} else {
echo 'El archivo no es legible';
} */
if ($bHayFicheros)
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
echo ($oFichero);
return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
}
//cambiar aqui el email
if (form_mail("[email protected].", $_POST[asunto],
"Los datos introducidos en el formulario son:\n\n", $_POST[email]))
echo "Su formulario ha sido enviado con exito";
Revise los permisos para acceder al archivo, el nombre correcto y nada
Saludos y les agradezco sus comentario