Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/06/2012, 22:56
chuntaro18
 
Fecha de Ingreso: mayo-2012
Ubicación: Distrito Federal
Mensajes: 49
Antigüedad: 12 años
Puntos: 9
Información Respuesta: Enviar e-mail con formato html mendiante PHPMailer - Parte 2

Paso 3:

El siguiente paso es la creacion del archivo PHP que se encargara de procesar los datos y mandar el e-mail con formato html a la direccion deseada, el codigo de este archivo es el siguiente:

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 = "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 = "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/logo.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 redirigira a la pagina sugerencias_enviadas.html
if(!$exito)
{
echo "Problemas enviando correo electrónico";
echo "<br>".$mail->ErrorInfo;
echo " ";
}
else
{
// Este script nos va a redirigir a la pagina sugerencias_enviadas.html
echo "<script language=Javascript> location.href=\"sugerencias_enviadas.html\"; </script>";
echo " ";
}

?>
El html se agregara despues de $cuerpo=' como podran notar al final tiene una comilla simple, despues de esta comilla pondremos todo el html y al terminar se cerrara con otra comilla simple.


Nota: Si le agregamos mas campos a nuestro formulario, estos campos tambien se tienen que agregar a nuestro archivo de envio html, solo hay que hacer coincidir el nombre del campo de texto de nuestro formulario con el de nuestro html a enviar, obteniendo los datos por medio del metodo POST, por ejemplo si en nuestro formulario agregamos un campo llamado telefono, en nuestro html se agregara asi: '.$_POST["telefono"].'

Paso 4:

Como ultimo paso crearemos el archivo sugerencias_enviadas.html, y su codigo es:

Código:
<!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>Documento sin título</title>
<style type="text/css">
<!--
#apDiv1 {
	position:absolute;
	width:372px;
	height:115px;
	z-index:1;
	left: 336px;
	top: 73px;
	text-align: center;
}
-->
</style>
</head>

<body>
<div id="apDiv1">
  <form id="form1" name="form1" method="post" action="sugerencias.html">
    <table width="371" border="1">
      <tr>
        <td style="text-align: center; font-family: Arial, Helvetica, sans-serif; font-size: 20px; color: #0C6; font-weight: bold;">Las sugerencias han sido enviadas satisfacoriamente</td>
      </tr>
      <tr>
        <td><label>
          <span style="text-align: center">
          <input type="submit" name="aceptar" id="aceptar" value="Aceptar" />
        </span></label></td>
      </tr>
    </table>
  </form>
</div>
</body>
</html>
Aqui al oprimir el boton aceptar nos regresara a la pagina inicial de sugerencias.html, gracias a la parte del codigo que dice: action="sugerencias.html"

Con esto ya tendremos nuestro sistema de sugerencias totalmente funcional usando la clase PHPMailer.

Espero que esta informacion les pueda ser de utilidad.

Última edición por chuntaro18; 03/06/2012 a las 23:02