Está en: Recursos web Php - Crear una lista de emails para envío conjunto.

Crear una lista de emails para envío conjunto con php:




A veces necesitamos enviar el mismo email a todos los usuarios de nuestro sitio ó a un conjunto de direcciones que creamos conveniente. Si almacenamos estos correos en una base de datos, podremos seleccionar los emails y enviar a todos ellos el mensaje que desarrollemos.

Crearemos un archivo único archivo php, en el cual crearemos tanto el formulario de envío como el script que conecta a la base de datos con los emails. En el formulario tendremos dos campos de texto, un será donde incluiremos el asunto del mensaje y otro el cuerpo del mensaje. Al pulsar enviar, conectará con la base de datos donde tengamos almacenadas las direcciones y enviará el mensaje a todas ellas.

Archivo php (listaemail.php):

<?php

Creamos una condición ordenando al archivo, que si no se ha enviado ningún email deberá mostrar en pantalla el formulario:

if ($_POST[op] != "send") {
print "
<html>
<head>
<title>Enviar email a direcciones de mi base de datos</TITLE>
</head>
<body>
Enviar email conjunto
<form method=\"post\" action=\"$_SERVER[PHP_SELF]\">
Asunto:
<input type=\"text\" name=\"asunto\"><br>
Cuerpo del Email:<br>
<textarea name=\"cuerpo\" cols=50 rows=10 wrap=virtual></textarea>
<input type=\"hidden\" name=\"op\" value=\"send\">
<input type=\"submit\" name=\"submit\" value=\"Enviar\">
</form>
</body>
</html>";


La otra oción es que aparezca enviado.

} else if ($_POST[op] == "send") {

Ahora comprobamos que los campos asunto y cuerpo están vacíos, si es así se vuelve a mostrar el formulario

if (($_POST[asunto] =="") || ($_POST[cuerpo] == "")) {
header("Location: listaemail.php");
exit;
}


Conectamos con la base de datos donde se encuentran los emails:

$conectar = mysql_connect("host", "usuario", "contraseña") or die(mysql_error());
mysql_select_db("dbemails",$conectar) or die(mysql_error());



Seleccionamos los emails de nuestra base de datos:

$basededatos = "select email from emailsusuarios ";
$resultado = mysql_query($basededatos,$conectar) or die(mysql_error());


Creamos la cabecera del email, donde indicamos de donde si envía el email:

$headers = "From: Título de mi sitio<misitio@misitio.com>\n";

Almacenamos en un array con la función mysql_fetch_array, los emails que anteriormente almacenamos en la variable $resultado, con la función set_time_limit(0) indicamos que no hay límite de tiempo del envío.

while ($filas = mysql_fetch_array($resultado)) {
set_time_limit(0);
$email = $filas['email'];


Finalmente usamos la función mail de php para el envío y ordenamos que nos imprima en pantalla los emails a los que enviamos el mensaje.

mail("$email", stripslashes($_POST[asunto]), stripslashes($_POST[cuerpo]), $headers);
print "Email enviado a: $email<br>";
}
}
?>


También podemos añadir imágenes y estilos css al cuerpo del mensaje y así personalizar con código html el email, para ello configuramos una nueva variable que contendrá tanto el código html que necesitemos (explicado en el tutorial envío de emails con php) y donde podremos situar la varible $cuerpo del mensaje donde creamos conveniente. Así el mensaje tendrá siempre el mismo formato, con la variante del texto que incluimos en el campo cuerpo.

Inicio / Servicios Web / Recursos Web / Portfolio / Enlaces / Contacto / Sitemap / Aviso Legal

Hu Creative Web Site - info@hucreative.com
www.hucreative.com