Foros del Web » Programando para Internet » PHP »

Mail con formato HTML

Estas en el tema de Mail con formato HTML en el foro de PHP en Foros del Web. hola amigos Me encuentro con un gran problema ..... no es primera vez que hago un sistema de envio de boletines . Siempre los he ...
  #1 (permalink)  
Antiguo 22/03/2006, 02:25
Avatar de GERMANCIN  
Fecha de Ingreso: junio-2004
Mensajes: 151
Antigüedad: 13 años, 6 meses
Puntos: 0
Mail con formato HTML

hola amigos
Me encuentro con un gran problema ..... no es primera vez que hago un sistema de envio de boletines . Siempre los he hecho con texto plano y ahora que deseo enviar fotos, enlaces, tablas... etc me envuentro con un gran problema.

He investigado y he probado de dos formas aqui las presento acontinuacion y que problemas he tenido con cada una:

1) En primera instancia investigué y descubri que solo habia que poner unas cabeceras y especificar que el mensaje era HTML asi:

Código HTML:
Content-Type: text/html; charset=ISO-8859-1\r\n
MIME-Version: 1.0\r\n
Pues de esta manera me llegan solo a los mails de gmail pero al parecer cuando les toca a los de HOTMAIL los rechaza por tener etiquetas como <img> o <a href>






2)Pues segui investigando y encontré otra forma mucho mas extensa pero al igual que el de arriba solo me llegaban a los mails de Gmail y no llegaban a los de HOTMAIL .. esta es la forma que encontré:
Código HTML:
$asunto="Boletin";
		  
   $headers=" from: remitente <remite> \r\n "; // esto es quien envia el mail ..
   $headers .= " MIME-Version: 1.0\r\n ";
  // $headers .="Content-Type: text/html; charset=\"ISO-8859-1\"\n";
   $boundary = uniqid(" HTMLDEMO ");
  $headers .= " Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n ";
  $body .= " $boundary\r\n " .
          "Content-Type: text/html; charset=ISO-8859-1\r\n" .
        "Content-Transfer-Encoding: base64\r\n\r\n";
  $body .= chunk_split(base64_encode( $txtMensaje  ));
   	  		   			
 mail($para,$asunto,$body,$headers);
POrfavor alguien me podria ayudar con ese codigo necesito enviar mails con fotos enlaces tablas etc.. y que sirva de verdad..

Tengo bases de php y base de datos ... aunque nose que sucede con este codigo que en realidad deberia de ser simple ..


De antemano quedo agradecido por su atencion y ayuda.
  #2 (permalink)  
Antiguo 22/03/2006, 05:02
Avatar de GERMANCIN  
Fecha de Ingreso: junio-2004
Mensajes: 151
Antigüedad: 13 años, 6 meses
Puntos: 0
La solucion

Bueno he enconttrado la solucion y la pongo a su disposicion.

lo que pasaba es que esta clase de codigo es muy sencible a espacios y eso es lo que me habia fallado:
Código HTML:
<?php
//add From: header
$headers = "From: [email protected]\r\n";

//specify MIME version 1.0
$headers .= "MIME-Version: 1.0\r\n";

//unique boundary
$boundary = uniqid("HTMLDEMO");

//tell e-mail client this e-mail contains//alternate versions
$headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n";



//HTML version of message
$body .= "--$boundary\r\n" .
   "Content-Type: text/html; charset=ISO-8859-1\r\n" .
   "Content-Transfer-Encoding: base64\r\n\r\n";
   $txtMensaje="<img src=http://www.virtualkernel.net/fotovirtual.gif>";
$body .= chunk_split(base64_encode("$txtMensaje"));

//send message
mail("[email protected]", "An HTML Message", $body, $headers);
echo "se envio correcto";
?> 


aumente una variable $txtMensaje="<img src=http://www.virtualkernel.net/fotovirtual.gif>"; con una direccion de mi host y una foto.. bueno esta variable podria ser la variable de un textbox asi como lo he hecho yo.
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 05:07.