Ver Mensaje Individual
  #14 (permalink)  
Antiguo 03/06/2012, 17:43
chuntaro18
 
Fecha de Ingreso: mayo-2012
Ubicación: Distrito Federal
Mensajes: 49
Antigüedad: 12 años
Puntos: 9
Respuesta: Dar formato a seccion HTML en phpmailer

Ya resolvi el problema, y ahora los mensajes llegan con el formato que se le quiera dar. Dejo el codigo funcional para quien tenga el mismo problema sepa como solucionarlo.

Les comento que este codigo recoge los datos de un formulario aparte (sugerencias.php) por medio del metodo POST y solo se encarga del envio correcto, ademas le puse comentarios para que sepan que hace cada una de las lineas.

Y bueno sin mas, aqui el codigo:

sugerencias_send.php
Código:
<?php

// Primero hay que incluir la clase phpmailer para poder instanciar un objeto de la misma
require "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 = "cualquier 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 = "Envio de Sugerencias"; 

// 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/Real.jpg" width="284" height="166"></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> '.$_POST["ap_pat"].'&nbsp; <spanHelvetica LT Condensed"; font-size: 18px;">'.$_POST["ap_mat"].'&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 muestre "Mensaj enviado correctamente"
if(!$exito)
{
echo "Problemas enviando correo electrónico";
echo "<br>".$mail->ErrorInfo;
echo " ";
}
else
{
// Este script nos redirige a una pagina web aparte en la cual se da un aviso de que el mensaje se envio correctamente
echo "<script language=Javascript> location.href=\"sugerencias_enviadas.php\"; </script>";
echo " ";
}

?>
Tambien les dejo el codigo del formulario, cuyos datos recoge el codigo antes mencionado, les aclaro que el codigo solo contiene el form donde se encuentran los campos y el cual tiene estas caracteristicas:

<form id="sugerencias" name="sugerencias" method="post" action="sugerencias_send.php" enctype="multipart/form-data">

Ustedes le pueden poner el diseño que quieran

Bueno aqui el codigo:

sugerencias.php
Código:
<form id="sugerencias" name="sugerencias" method="post" action="sugerencias_send.php" enctype="multipart/form-data">
              <table width="637" border="0">
                <tr>
                  <td width="216" style="font-size: 20px"><span style="color: #000; text-align: left;">Nombre</span>:</td>
                  <td width="359"><span id="sprytextfield1">
                    <label>
                      <input type="text" name="nombre" id="nombre" />
                    </label>
                    <span class="textfieldRequiredMsg">Escriba su nombre.</span></span></td>
                  <td width="48">&nbsp;</td>
                </tr>
                <tr>
                  <td style="font-size: 20px; color: #000; text-align: left;">Apellido Paterno:</td>
                  <td><span id="sprytextfield2">
                    <label>
                      <input type="text" name="ap_pat" id="ap_pat" />
                    </label>
                    <span class="textfieldRequiredMsg">Escriba su apellido paterno.</span></span></td>
                  <td>&nbsp;</td>
                </tr>
                <tr>
                  <td style="font-size: 20px; color: #000;">Apellido Materno:</td>
                  <td><span id="sprytextfield3">
                    <label>
                      <input type="text" name="ap_mat" id="ap_mat" />
                    </label>
                    <span class="textfieldRequiredMsg">Escriba su apellido materno.</span></span></td>
                  <td>&nbsp;</td>
                </tr>
                <tr>
                  <td style="font-size: 20px; color: #000;">Ciudad:</td>
                  <td><span id="sprytextfield4">
                    <label>
                      <input type="text" name="ciudad" id="ciudad" />
                    </label>
                    <span class="textfieldRequiredMsg">Escriba su ciudad.</span></span></td>
                  <td>&nbsp;</td>
                </tr>
                <tr>
                  <td style="font-size: 20px; color: #000;">Correo electrónico:</td>
                  <td><span id="sprytextfield5">
                  <label>
                    <input type="text" name="email" id="email" />
                  </label>
                  <span class="textfieldRequiredMsg">Escriba su e-mail.</span><span class="textfieldInvalidFormatMsg">Escriba su e-mail.</span></span></td>
                  <td>&nbsp;</td>
                </tr>
                <tr>
                  <td style="font-size: 20px; color: #000;">Sugerencias:</td>
                  <td><span id="sprytextarea1">
                    <label>
                      <textarea name="sugerencias" id="sugerencias" cols="45" rows="5"></textarea>
                    </label>
                    <span class="textareaRequiredMsg">Escriba sus sugerencias.</span></span></td>
                  <td>&nbsp;</td>
                </tr>
                <tr>
                  <td style="font-size: 20px">&nbsp;</td>
                  <td><label>
                    <input type="submit" name="enviar" id="enviar" value="Enviar sugerencias" />
                  </label></td>
                  <td>&nbsp;</td>
                </tr>
              </table>
            </form>
Y bueno sin mas espero que este ejemplo le sirva a alguien.

PDT: Gracias linuxzero por tu ayuda.