Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/01/2010, 16:51
marcos46g
 
Fecha de Ingreso: julio-2009
Mensajes: 311
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: mail con una imagen adjunta

Cita:
Iniciado por franco190453 Ver Mensaje
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.


Muchas gracias por tu aporte.
Solo me queda una duda
donde dice miarchivo debo poner la ruta completa algo asi como
www.misitio.com/imagenes/imagen,jgp