Foros del Web » Programando para Internet » PHP »

Envio imagenes con mail()

Estas en el tema de Envio imagenes con mail() en el foro de PHP en Foros del Web. Buenos días, para enviar un correo electronico en formato html con php sería de la siguiente manera: Código PHP: $headers .= "From: \"$nombre\" <$email>\r \n" ;  $headers .= ...
  #1 (permalink)  
Antiguo 19/09/2008, 04:25
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Envio imagenes con mail()

Buenos días, para enviar un correo electronico en formato html con php sería de la siguiente manera:

Código PHP:
$headers.="From: \"$nombre\" <$email>\r \n"
$headers.="X-Mailer:PHP/".phpversion()."\n"
$headers.="Mime-Version: 1.0\n"
$headers.="Content-Type: text/html";

$destino="el correo de la persona que tenga que recibir el correo";
$asunto="Mi asunto que aparecerá quien lo reciba";
$mensaje="<html><body>El mensaje del texto que verá el destino</body></html>";

if(
mail($destino,$asunto,$mensaje,$headers)) echo("Mensaje enviado.");
else echo(
"Mensaje no enviado."); 

Como puedo enviar una imagen para que se vea en el correo electronico: ejemplo del código html

Código PHP:
$mensaje="<html><body>El mensaje del texto que verá el destino<img src='mi_imagen.jpg'></body></html>"
  #2 (permalink)  
Antiguo 19/09/2008, 08:15
Avatar de RollerSky  
Fecha de Ingreso: marzo-2008
Mensajes: 123
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: Envio imagenes con mail()

Asi como lo tienes te funciona, puedes enviar en el mensaje todo un codigo HTML de la pagina, por supuesto el SRC de la imagen no va a ser algo asi: imagenes/imagen.jpg sino que tendra la ruta del servidor donde se encuentra, es decir subes el archivo que hace el envio a un server a una carpeta mail( solo como ejemplo) dentro de dicha carpeta puedes hacer una subcarpeta imagenes y ahi metes las imagenes, entonces la etiqueta de la imagen te quedaria algo asi:

<img src="http://www.tupagina.com/mail/imagenes/imagen.jpg" width="" height="" />


Código PHP:

/*
Te doy una funcion que me va muy bien: recibe un parametro que es el Mail.
*/
function enviarEmail($mail){

$sujeto "!AQUI EL SUJETO DEL MAIL!";

$encabezado "From: [email protected]";
$encabezado .= "\nReply-To: [email protected]";
$encabezado  .= 'MIME-Version: 1.0' "\r\n";
$encabezado .= "Content-type: text/html; charset=iso-8859-1 \r\n";
$mensaje='
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
    
</head>

<body>
    <div align="center">
    <table width="700" border="0" cellspacing="0" cellpadding="0">
      <!--DWLayoutTable-->
      <tr>
        <td width="700" height="195" valign="top"><img src="http://www.tupagina.com/mail/imagenes/imagen.jpg" width="" height="" />[/</td>
      </tr>
    </table>
  </div>
</body>
</html>

'
;

mail($mail$sujeto$mensaje$encabezado);

salu2!

Última edición por tunait; 24/09/2008 a las 03:13 Razón: remover firma
  #3 (permalink)  
Antiguo 19/09/2008, 08:22
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: Envio imagenes con mail()

Hola xinxan22...

Complementando lo que dice RollerSky, para "enviar" imágenes en mail's debes manejar rutas absolutas (direcciones como esta: http://www.pagina.algo/ubicacion_de_mi_imagen) en el src del tag html <img>

Un breve ejemplo:

Código HTML:
<img src="http://www.pagina.algo/ubicacion_de_la_imagen/imagen.jpg" title="Esta es mi imagen enviada" alt="imagen.jpg" /> 
Espero te sirva,

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 19/09/2008, 08:46
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Envio imagenes con mail()

Pues pensaba que sería más difícil...jeje...muchas gracias.
  #5 (permalink)  
Antiguo 19/09/2008, 08:57
 
Fecha de Ingreso: junio-2008
Mensajes: 11
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Envio imagenes con mail()

$mensaje.="<img src=\"http://www.xxxxxx.com/images/foto.jpg"\">;
  #6 (permalink)  
Antiguo 19/09/2008, 14:55
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Envio imagenes con mail()

xinxan22:
La forma correcta de enviar, por ejemplo una imagen JPG,
adjunta a un envio y NO un enlace a la imagen es asi:

$fp = fopen(($archivoenviar) ,"r");
$str = fread($fp, filesize($archivoenviar));
$str = chunk_split(base64_encode($str));
$fp = fclose($fp);

$mimensaje = "--MIME_BOUNDRY\n";
$mimensaje .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$mimensaje .= "Content-Transfer-Encoding: quoted-printable\n";
$mimensaje .= "\n";
$mimensaje .= "$mensaje";
$mimensaje .= "\n";

$mimensaje .= "--MIME_BOUNDRY\n";
$mimensaje .= "Content-Type: image/jpg; name=\"$nombre\"\n";
$mimensaje .= "Content-disposition: attachment\n";
$mimensaje .= "Content-Transfer-Encoding: base64\n";
$mimensaje .= "\n";
$mimensaje .= "$str\n";
$mimensaje .= "\n";
$mimensaje .= "--MIME_BOUNDRY--\n";

mail($destino, $asunto, $mimensaje, $headers);

Este codigo te funciona con cualquier servidor de correo
como hotmail, yahoo y gmail.
1.- se toma el archivo binario se codifica con base64_encode(),
se guarda en $str, se establecen los MIME BOUNDARY como
image/jpg y la disposition $attachment o adjunto".
2.- Se establece el mensaje escrito, se establecen los MIME BOUNDRY
como "text/plain o texto sencillo"
3.- Se envian junto con los headers.
Saludos
Franco
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 04:36.