Curso de PHP

Estás en: Mailing : Envío del boletín

Envío del boletín

Se envía el boletín a todos aquellos a los que han confirmado la suscripción y tienen el valor "activo" a 1.

<?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;

// --------------------------- CONEXION A LA BASE DE DATOS -----------------------

// Conexión a la base de datos (servidor, usuario, contraseña)
abrir_conexion ("localhost", "monica", "php80", "emailing");

echo $sql="SELECT * FROM interesados WHERE activo=1"; 
		   
$resultado=mysql_query($sql);

if ($resultado) 
{
   while ($fila=mysql_fetch_array ($resultado)) {

	// ----------------------------- DATOS DEL MENSAJE -------------------------------
	
	  //Indicamos cual es la dirección de destino del correo
	  $mail->AddAddress($fila['email'], $fila['nombre']);
	
	  //Asignamos asunto y cuerpo del mensaje
	  //El cuerpo del mensaje lo ponemos en formato html, haciendo 
	  //que se vea en negrita
	  $mail->Subject = "Boletín de Mayo para 2 direcciones";
	  $mail->Body = 'Datos del boletín.  
	  Si quiere darse de baja del boletín pulse <a href="http://localhost/web/Curso_PHP_Monica/_EJERCICIOS/06_Emails/05%20Mailing/baja_boletin.php?email='.$fila['email'].'&nombre='.$fila['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 
	  //la variable $exito tendra el valor true
	
	  if ($mail->Send()) {
		echo "Envío correcto para ".$fila['email'];
	  }else {
		echo "Error".$mail->ErrorInfo;  // La propiedad errorinfo contiene el error
	  }
	  
	  $mail->ClearAddresses(); //Borra la dirección que se ha metido en el array
           // Si no se elimina, la segunda vez, contendrá 2 direcciones, y por lo tanto, 
           //enviará el email a los 2
   } //while
	
}else {
   echo mysql_error();
}

mysql_close();	// Se cierra la conexión. Conviene cerrarlas para que el servidor no se sature
?>