Estás en Inicio > Como hacer > Ejemplos PHP y MySQL > Envío de boletines a…
disenador-web-autonomo

Envío de boletines a emails de una base de datos MySQL



Código PHP para el envío de boletines a emails almacenados en una base de datos

Ahora está muy de moda el envío de boletines para informar de las novedades en las webs. El único problema es que para hacerlo, la mayoría de webmasters tienen que depender de alguna empresa (o servidor) que les gestione la base de datos y les envíe los emails cuando lo requieran.

En este artículo explicaré paso a paso como crear la tabla (en la base de datos MySQL) necesaria para el almacenamiento de los emails y posteriormente, cómo enviar un boletín electrónico a todos ellos, con el aliciente de que no aparezcan todos los destinatarios en el campo “Para:” del mensaje.

Creación de tabla en la base de datos

Mediante su gestor de la base de datos MySQL (seguramente “phpMyAdmin”) debe crear una nueva tabla en su base de datos. Aquí le facilitamos el archivo de texto para ello:

CREATE TABLE usuarios (
id bigint(7) NOT NULL auto_increment,
nick varchar(100) NOT NULL,
passowrd varchar(100) NOT NULL,
nombre varchar(255) default NULL,
email varchar(100) default NULL,
KEY id (id)
)

Y quedará así en su phpMyAdmin:

base de datos para el envío de boletines mediante php

Tras esto usted ya tiene la tabla necesaria para almacenar los datos dentro de una base de datos MySQL. Podría explicar como introducir los datos en esta tabla mediante formularios de registro… pero eso ya lo dejo a gusto del webmaster.

Envío del boletín

Para enviar el boletín solo debe cambiar los datos del siguiente archivo php por los de su base de datos y tendrá listo su archivo. Para enviar el boletín solo tiene que ejecutar este archivo en su servidor:

<?php
$mi_conexion=mysql_connect(’servidor’,
‘nombre_de_usuarior’    ,’contraseña’)
or die (  ’No se puedo conectar
con la base de datos!’);

/* Servidor: aquí debe poner la
dirección de su servidor, en la
mayoría de las compañías es ‘localhost’
Nombre_de_usuario: debe poner su
nombre de usuario en el servidor.
Contraseña: su contraseña. */

mysql_select_db(’base_de_datos’,$mi_conexion);

/* Base_de_datos: nombre base de datos. */

$query_Tabla = “SELECT email FROM usuarios
ORDER BY id ASC”;
$Tabla = mysql_query($query_Tabla, $mi_conexion)
or die(mysql_error());

/* Email: es el nombre del campo que requerimos,
si ha seguido nuestras instrucciones creando
nuestra misma tabla en la base de datos no debe
cambiar esto.
Usuarios: es el nombre de la tabla donde está
el campo ‘email’, si ha  seguido nuestras
instrucciones creando nuestra misma tabla en
base de datos no debe cambiar esto. */

//elaboramos cadena de emails

$losemails=”";
while ($row_Tabla=mysql_fetch_assoc($Tabla))
{
$losemails.=($row_Tabla[’email’].”, “);
}

$largo=strlen($losemails);
if ($largo>2)
{

//quitamos ultimos “, ”

$losemails=substr($losemails,0,$largo-2);
}
else
{
echo “No hay destinatarios!”;
die();
};

// se definen los argumentos de mail( ):

$asunto=’Prueba de email desde PHP’;
$mensaje=’<html>
<head>
<title>Titulo de la Pagina</title>
</head>
<body>
<p>Esta es una prueba de
emails en formato HTML</p>

Precios de nuestros productos:
<table>
<tr>
<th>PRODUCTO<th>PRECIO
<th>PROMOCION</th>
</tr>
 <tr>
<td>Refresco Grande</td>
<td>25,50</td><td>23,00</td>
</tr>
<tr>
<td>Helado Napolitano</td>
<td>27,50</td><td>25,00</td>
</tr>
<tr>
<td>Patatas</td>
<td>18,50</td>
<td>15,00</td>
</tr>
</table>
</body>
</html>’;

/* Aquí poner email en HTML */

$envia=’enviante’;
$remite=’email_remitente’; 

/* Enviante: Nombre del enviante
Email_remitente: email a mostrar
como remitente. */

/// Envío del email:

mail(null, $asunto, $mensaje,
“MIME-Version: 1.0
Content-type: text/html;
charset=iso-8859-1
From: $envia <$remite>
Bcc: $losemails” . “\r\n”)
or die(”Error al Enviar Email”);
echo “Mensaje Enviado!”; //
mysql_free_result($Tabla);
mysql_close($mi_conexion);
?>

Ya tenemos nuestro sistema de envío de boletines, no tendremos que depender de nadie.

El único problema que presenta este sistema es que al no aparecer nada en el campo “Para:” del email, algunos gestores de email lo colocan como “correo no deseado”.






Artículos Relacionados
Manejo de Bases de Datos con Flash (Parte II)
En la anterior entrega de esta serie de artículos sobre el manejo de bases de...
Manejo de Bases de Datos con Flash (Parte III)
En el anterior artículo definimos la manera de cómo crear la base de datos y...
Seguridad en el registro de usuarios y el manejo de sesiones con PHP (primera parte)
En la actualidad la seguridad es uno de los aspectos más relevantes del desarrollo...
Manual ASP. Selecciones en una tabla
Selecciones de una tabla Dentro de una base de datos, organizada por tablas, la selección...

Artículo creado el 13/10/07
Última Actualización: 14/12/09

Autor y licencia

Autor: Raúl Aviles
URL: Isens.es



4 Comentarios para “Envío de boletines a emails de una base de datos MySQL”

  1. Sonia:

    Favor tendras un script que se adapte en codigo asp, te agradeceria mucho, Gracias.

    22/09/08 - 16:01 #

  2. Verónica M.:

    No lo tengo, lo siento sonia.

    27/09/08 - 21:05 #

  3. Jorge:

    Realmente muy agradecido…

    Lo estaba buscando …. ;)

    Espero que me funcione… =D

    30/05/10 - 22:05 #

Enlaces a esta entrada


Publicar un comentario