Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/09/2012, 18:16
chuntaro18
 
Fecha de Ingreso: mayo-2012
Ubicación: Distrito Federal
Mensajes: 49
Antigüedad: 12 años
Puntos: 9
Respuesta: Enviar HTML por correo PHP

Deberias de usar la libreria phpmailer, es facil de utilizar y soporta formato html.

La puedes bajar desde aqui o desde su pagina oficial

Una vez que la bajaste y descomprimiste, tendras una carpeta llamada phpmailer y dentro de ella 3 archivos, pero el que va a realizar el trabajo se llama class.phpmailer.php.

Ahora tendras que crear un nuevo archivo llamado procesar_envio.php, el cual contendra lo siguiente (le puse comentarios para que veas que hace cada linea):

procesar_envio.php
Código:
<?php

// Primero hay que incluir la clase phpmailer para poder instanciar un objeto de la misma
require "phpmailer/class.phpmailer.php";

// Instanciamos un objeto de la clase phpmailer al que llamamos por ejemplo mail
$mail = new phpmailer();

// Señalamos los datos de envio que llevara nuestro correo
$mail->From = "[email protected]"; // Direccion de correo de quien envia el mensaje
$mail->FromName = "Tu nombre"; // Nombre de quien envia el mensaje
$mail->Timeout=120; // El valor por defecto del timeout es 10 pero vamos a usar 120. 
$mail->AddAddress("[email protected]"); // Indicamos cual es la direccón de destino del correo, es decir, a donde se enviara

// Indicamos en la cabecera si el correo contiene html. Esta línea es muy importante si nuestro correo va a contener html
$mail->IsHTML(true);

// Asunto del mensaje
$mail->Subject = "Contacto"; 

// Aquí es donde incluiremos el correo el html, este html se puede editar con Dreamweaver o con cualiquier otro editor y despues pegarlo a continuacion de la comilla simple del metodo $cuerpo=
$cuerpo='

<html>
<head>
<title>Envio de Sugerencias</title>
<style type="text/css">
<!--
#datos {
	position:absolute;
	width:780px;
	left: 164px;
	top: 316px;
	text-align: center;
}
#apDiv1 #form1 table tr td {
	text-align: center;
	font-weight: bold;
}
#apDiv2 {
	position:absolute;
	width:49px;
	height:45px;
	z-index:2;
	left: 12px;
	top: 11px;
}
#apDiv1 #notificacion table tr td {
	text-align: center;
}
#apDiv1 #notificacion table tr td {
	text-align: left;
}
#apDiv1 #notificacion table tr td {
	text-align: center;
	font-family: Arial, Helvetica, sans-serif;
}
#apDiv3 {
	position:absolute;
	width:833px;
	height:115px;
	z-index:1;
	left: 99px;
	text-align: center;
	top: 16px;
}
-->
</style>
</head>

<body>
<div id="apDiv3">
  <table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
    <tr>
      <td><table width="100%" border="0">
        <tr>
          <td style="text-align: center"><img src="imagenes/tu_logo.jpg" width="305" height="211"></td>
        </tr>
        <tr>
          <td><p>&nbsp;</p>
            <p style="font-family: Helvetica LT Condensed; color: #008895; font-weight: bold; font-size: 22px; text-align: center;">ENVIO DE SUGERENCIAS</p></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td style="font-family: Helvetica LT Condensed; font-size: 18px;"><spanHelvetica LT Condensed"; font-size: 18px;">
            <span style="font-weight: bold">Nombre:</span>&nbsp; '.$_POST["nombre"].'</span>&nbsp;</span></td>
        </tr>
        <tr>
          <td style="font-family: Helvetica LT Condensed; font-size: 18px;"><span style="font-weight: bold">Ciudad:</span>&nbsp; '.$_POST["ciudad"].'</td>
        </tr>
        <tr>
          <td style="font-family: Helvetica LT Condensed; font-size: 18px;"><span style="font-weight: bold">Correo Electrónico:</span>&nbsp; '.$_POST["email"].'</td>
        </tr>
        <tr>
          <td><p>&nbsp;</p>
            <p><span style="font-family: Helvetica LT Condensed; font-size: 18px;"><span style="font-weight: bold">Sugerencias:</span>&nbsp; '.$_POST["sugerencias"].'</span></p></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
        </tr>
      </table></td>
    </tr>
  </table>
</div>
</body>
</html>

'; // Cerramos la comilla simple. Con la comilla simple y el punto y coma se finaliza el cuerpo del mensaje html.  


// Asignamos al atributo Body, la variable $cuerpo.
$mail->Body = $cuerpo; 

// Definimos AltBody por si el destinatario (quien recive) del correo no admite email con formato html, es decir recibirá este mensaje si el servidor de correo al que enviamos el mensaje no puede admitir html
$mail->AltBody = "Usted esta viendo este mensaje simple debido a que su servidor de correo no admite formato HTML.";

// Se envia el mensaje, si no ha habido problemas la variable $exito tendra el valor true (verdadero) y el correo se habrá enviado satisfactoriamente.
$exito = $mail->Send();

// Si el mensaje no ha podido ser enviado se realizaran 2 intentos mas como mucho para intentar enviar el mensaje, cada intento se hara 5 segundos despues del anterior, para ello se usa la funcion sleep
$intentos=1;
while ((!$exito) && ($intentos < 2)) {
sleep(5);
//echo $mail->ErrorInfo;
$exito = $mail->Send();
$intentos=$intentos+1;

}
// Esta condicional nos sirve para que en caso de que haya error al enviar el mensaje se muestre el mensaje "Problemas nviando correo electronico" y en caso satisfactorio nos envie a la pagina de confirmacion "sugerencias_enviadas.php"

if(!$exito)
{
echo "Problemas enviando correo electrónico";
echo "<br>".$mail->ErrorInfo;
echo " ";
}
else
{
echo "<script language=Javascript> location.href=\"sugerencias_enviadas.php\"; </script>";
echo " ";
}

?>

Por ultimo solo queda que al formulario que tienes le pongas lo siguiente:

<form id="tu_formulario" name="tu_formulario" method="post" action="procesar_envio.php" enctype="multipart/form-data"

Esto para que al oprimir el boto de enviar todo el contenido sea porcesado por el archivo procesar_envio.php

Y listo

Espero que sea lo que buscabas