Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/01/2010, 20:40
franco190453
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años, 1 mes
Puntos: 33
Respuesta: mail con una imagen adjunta

marcos46g:
Enviar imagenes que esten guardadas en el servidor NO es buena idea, ya
que si envias a 1000 usuarios tendrias muchos problemas de conexion.

Lo mas recomendable es que lo envies como adjunto asi ->

$destino = "[email protected]";
$asunto = "Probando envio attachmentes";
$mensaje = "A ver si todo sale bien. Gracias.";
$headers = "From: [email protected]\n";
$headers .= "Reply-To: [email protected]\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"MIME_BOUNDRY\"\n";
$headers .= "This is a multi-part message in MIME format.\n";

$fp = fopen(($_FILES['miarchivo']['tmp_name']),"r");
$str = fread($fp, filesize($_FILES['miarchivo']['tmp_name']));
$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";
$message .= "Content-Type: application/octet-stream; name=\"nuevo.txt\"\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)) {
exit("Ha ocurrido un error, por favor inténtalo más tarde");
}

Comentarios:

En este caso tenemos un destino que sera el correo del usuario.
Un asunto que ya tu lo designaras.
Un mensaje que deberas diseñar tu mismo!.

Las cabeceras ->
deben contener las dos ultimas lineas donde dice headers.!!!!.

El manejo del archivo ->
En este caso mio, he subido el archivo y lo debo ABRIR, LEER, CODIFICAR Y CERRAR.

El mensaje ->
debe ir dentro de un MIME_BOUNDARY o (fronteras MIME)

El archivo adjunto ->
debera ir en otra MIME_BOUNDARY o (frontera MIME).

Y finalmente se envia.

OJO -> si el archivo reside en el servidor y mas especificamente en el
directorio donde se encuentra el codigo php que enviara el archivo, simplemente se abre como imagen.jpg...

Saludos
Y espero te ayude
Franco

P.S. Todo esto es conforme los estandares generalmente aceptados para el envio de archivos adjuntos via SMTP puerto 25.