Ver Mensaje Individual
  #12 (permalink)  
Antiguo 16/12/2008, 19:13
franco190453
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años, 1 mes
Puntos: 33
Respuesta: Enviar PDF por correo

el_cesar:
Con este, eficaz y eficiente script que personalmente utilizo
con exito. Modificalo a tus necesidades.

Cita:
$archivoenviar = $_SERVER['DOCUMENT_ROOT']."/archivos/";
$archivoenviar .= "$nombre";
if(!file_exists($archivoenviar)) {
echo "<b>Archivo NO Existe!,<br>";
echo "<b>Vuelva A Intentar!!!.<br>";
echo "<b>GRACIAS!!!.<br>";
echo "<br><a href=\"index.xhtml\"><b>VOLVER<a/>";
exit();
}
$tipo = stristr($archivoenviar,'.');
$nombre = rtrim($nombre);
$nombre = strtolower($nombre);

$fp = fopen(($archivoenviar) ,"r");
$str = fread($fp, filesize($archivoenviar));
$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";
if(!$tipo) {
echo "<b>No Existe Tipo!.<br>";
echo "<b>Tipo De Archivo<br>";
echo "<b>ES OBLIGATORIO<br>";
echo "<br><a href=\"index.xhtml\"><b>VOLVER<a/>";
exit();
}
if($tipo == ".pdf") {
$message .= "Content-Type: application/octet-stream; name=\"$nombre\"\n";
}
$message .= "Content-disposition: attachment\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "\n";
$message .= "$str\n";
$message .= "\n";
$message .= "--MIME_BOUNDRY--\n";

if(!mail($destino, $asunto, $message, $headers)) {
echo "<b>Ha Ocurrido Error,<br>";
echo "<b>Intentelo Mas Tarde<br>";
echo "<b>Error Servidor De Correo<br>";
echo "<br><a href=\"index.xhtml\"><b>VOLVER<a/>";
exit();
}
EL SCRIPT CONTIENE SIETE PARTES ESENCIALES PARA PODER ENVIAR ADJUNTOS DESDE LA FUNCION MAIL A CUALQUIER CORREO EN INTERNET:
1.- UBICACION DEL ARCHIVO A ADJUNTAR Y REVISAR SI REALMENTE EXISTE.
2.- DETERMINAR EL TIPO PARA PODER ESTABLECER LOS MIME TYPES.
3.- ABRIRLO Y CODIFICARLO CON BASE64.
4.- CREAR LAS FRONTERAS MIME (MIME BOUNDARY)
5.- LA PRIMERA FRONTERA ES EL MENSAJE Y GENERALMENTE VA COMO TEXT/PLAIN
TAMBIEN PUEDE IR COMO TEXT/HTML
6.- LA SEGUNDA FRONTERA ES EL ARCHIVO EN SI, EL TIPO Y LA CODIFICACION QUE UTILIZASTES PARA ADJUNTARLO.
7.- EL ENVIO EN SI.
Cuando la comunicacion se establece entre el servidor que maneja tu correo y el servidor receptor, toda esta informacion debe ser clara y adecuadamente ordenada y codificada para que los estandares de envio de correo se cumplan y ambos servidores esten de acuerdo uno en enviar y el otro en recibir.

Saludos
Y espero te ayude

Franco