Foros del Web » Programando para Internet » PHP »

Adjuntos en email mandado con php

Estas en el tema de Adjuntos en email mandado con php en el foro de PHP en Foros del Web. Usando los recursos disponibles en el sitio he adaptado esta rutina para enviar emails con adjunto. En concreto quiero enviar una foto como adjunto. $frontera ...
  #1 (permalink)  
Antiguo 07/05/2012, 13:40
 
Fecha de Ingreso: febrero-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Adjuntos en email mandado con php

Usando los recursos disponibles en el sitio he adaptado esta rutina para enviar emails con adjunto. En concreto quiero enviar una foto como adjunto.

$frontera = '--=_NextPart_01CCFD20.1986B0A0';

$para = "[email protected]";

$asunto = "Correo con adjunto";

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-Type: multipart/mixed; boundary="' . $frontera . '"';

$adjunto= chunk_split(base64_encode(file_get_contents('image nprueba.png')));
$msg = 'Mi prueba para mandar';

$correo = "\r\n" . '--' . $frontera . "\r\n";
$correo .= 'Content-Type: text/html; charset="iso-8859-1"; Content-Transfer-Encoding: 7bit' . "\r\n";
$correo .= $msg;
$correo .= "\r\n" . '--' . $frontera . "\r\n";
$correo .= 'Content-Type: imagen/png; name="imagenprueba.png"' . "\r\n";
$correo .= 'Content-Transfer-Encoding: base64 ';
$correo .= 'Content-Disposition: attachment; filename="imagenprueba.png"' . "\r\n";
$correo .= $adjunto;
$correo .= "\r\n" . '--' . $frontera . '--' . "\r\n";


if (@mail($para, $asunto, $correo, $headers)) { $msg = 'Funciona'; }
else { $msg = 'No funciona'; }

echo $msg;

El fichero imagenprueba esta donde la rutina. Funciona bien, es decir, me manda un email y me reconoce el adjunto como el archivo imagenprueba.png pero ....

1- El archivo bajado es mucho más grande que el original (14714 vs. 20136).

y por ello 2- No se puede abrir el archivo ni visualizarlo.

Algún alma caritativa me puede decir que estoy haciendo mal ...

Muchas gracias,
  #2 (permalink)  
Antiguo 09/05/2012, 04:53
 
Fecha de Ingreso: febrero-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Adjuntos en email mandado con php

Bueno ya lo he solucionado,

Queda asi :

$frontera = '--=_NextPart_01CCFD20.1986B0A0';

$para = "[email protected]";

$asunto = "Correo con adjunto";

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-Type: multipart/mixed; boundary="' . $frontera . '"';

$nombre_fichero_con_ruta = 'imagen.gif';
$nombre_fichero = 'imagen.gif';
$tipo_fichero = 'image/gif';

$adjunto= chunk_split(base64_encode(file_get_contents($nombr e_fichero_con_ruta)));
$msg = 'Mi prueba para mandar';

$correo = "\r\n" . '--' . $frontera . "\r\n";
$correo .= 'Content-Type: text/html; charset="iso-8859-1"; Content-Transfer-Encoding: 7bit' . "\r\n";
$correo .= $msg;
$correo .= "\r\n" . '--' . $frontera . "\r\n";
$correo .= 'Content-Type: ' . $tipo_fichero . '; name="' . $nombre_fichero . '"' . "\r\n";
$correo .= 'Content-Transfer-Encoding: base64 ' . "\r\n";
$correo .= 'Content-Disposition: attachment; filename="' . $nombre_fichero . '"' . "\r\n";
$correo .= $adjunto;
$correo .= "\r\n" . '--' . $frontera . '--' . "\r\n";


if (@mail($para, $asunto, $correo, $headers)) { $msg = 'Funciona'; }
else { $msg = 'No funciona'; }

echo $msg;


Me faltaba un "\r\n" despues de base64. Con esta tonteria de cambio ya funciona

Etiquetas: adjuntos, email
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:22.