Curso de PHP

Estás en: Mailing : Enviar email con los datos del formulario

Enviar email con los datos del formulario

En este página se configuran los parámetros de envío del mensaje (from, to, body, smtp, ...), para que el usuario confirme la suscripción.

<?php
include ("includes/funciones.php");

// ----------------------------- DATOS DE SMTP Y CUENTA DE ENVÍO -------------------------------

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

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

//Definimos las propiedades y llamamos a los métodos 
//correspondientes del objeto mail

//Con PluginDir le indicamos a la clase phpmailer donde se 
//encuentra la clase smtp que como he comentado al principio de 
//este ejemplo va a estar en el subdirectorio includes
$mail->PluginDir = "includes/";

//Con la propiedad Mailer le indicamos que vamos a usar un 
//servidor smtp
$mail->Mailer = "smtp";

//Asignamos a Host el nombre de nuestro servidor smtp
$mail->Host = "smtp.areafor.com";

//Le indicamos que el servidor smtp requiere autenticación
$mail->SMTPAuth = true;

//Le decimos cual es nuestro nombre de usuario y password
$mail->Username = "area0106@areafor.com"; 
$mail->Password = "unouno";

//Indicamos cual es nuestra dirección de correo y el nombre que 
//queremos que vea el usuario que lee nuestro correo
$mail->From = "area1006@areafor.com";
$mail->FromName = "Mónica PHP";

//el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar 
//una cuenta gratuita, por tanto lo pongo a 30  
$mail->Timeout=30;

// ----------------------------- DATOS DEL MENSAJE -------------------------------

//Indicamos cual es la dirección de destino del correo
$mail->AddAddress($_POST['email'], $_POST['nombre']);

//Asignamos asunto y cuerpo del mensaje
//El cuerpo del mensaje lo ponemos en formato html, haciendo 
//que se vea en negrita
$mail->Subject = "Confirmación de alta en el boletín";

// La tabla puede ir contenida en la base de datos, y en el body, concatenarla a la frase: Ha sido ..... 
$mail->Body = '<table width="500" border="0"> 
   <tr>
      <td height="81" colspan="2" bgcolor="#FF00FF"><h1><font color="#FFCC33" face="Courier New, Courier, monospace">cabecera (emailing) </font></h1></td>
   </tr>
   <tr>
      <td width="157" valign="top" bgcolor="#CCCCCC"><strong><font face="Verdana, Arial, Helvetica, sans-serif">grandes ofertas </font></strong></td>
      <td width="333"><p><font size="2" face="Arial, Helvetica, sans-serif"><strong>asdfasdfasd</strong></font></p>
      <p><font size="2"><em><font face="Georgia, Times New Roman, Times, serif">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh   euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad   minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut   aliquip ex ea commodo consequat.</font></em></font></p>
      <p><font size="2"><em><font face="Georgia, Times New Roman, Times, serif">Duis autem vel eum iriure dolor in hendrerit in   vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla   facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent   luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber   tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod   mazim placerat facer possim assum. </font></em></font></p></td>
   </tr>
   <tr>
   <td colspan="2" bgcolor="#FF9900"> </td>
   </tr>
</table> Ha sido dado de alta en nuestro boletín. 
Confirme su alta en el boletín pulsando <a href="http://localhost/web/Curso_PHP_Monica/_EJERCICIOS/06_Emails/05%20Mailing/confirmado.php?email='.$_POST['email'].'&nombre='.$_POST['nombre'].'">aquí</a>
';

//Definimos AltBody por si el destinatario del correo no admite email con formato html 
$mail->AltBody = "AAAAAAAAAAAAAAA";

//Decimos que el email va a ser tipo HTML
$mail->IsHTML(true); 

//se envia el mensaje, si no ha habido problemas 
if ($mail->Send()) {
echo "Envío correcto";
}else {
echo "Error".$mail->ErrorInfo;  // La propiedad errorinfo contiene el error
}

//header("Location: alta_bd.php?email=".$_POST['email'].'&nombre='.$_POST['nombre']);  
//Como no se puede utilizar header después de hacer un echo, creo en un include la función 
//alta_bd y la llamo desde aquí, en vez de redirigir a la página alta_bd

abrir_conexion ("localhost", "monica", "php80", "emailing");
alta_bd ($_POST['email'], $_POST['nombre'], $_POST['provincia']);
   
?>