Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/10/2011, 15:43
Avatar de Yedi
Yedi
 
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
Exclamación Enviar mail con archivo adjunto - variable fopen definida

Hola a todos

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($oFicherofilesize($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