Envio correos a todos los email en una tabla
Buenas! He estado probando el ejemplo que publico alber https://datoweb.com/post/2380-enviar-correos-a-lista-de-emails-de-base-de-datos y funciona genial! Mi pregunta, despues de probarlo esque llega los email, y muestra todos los destinatarios del envio.
ahi alguna forma de que solo muestre al remitente su mail?
gracias compañeros!
ahi alguna forma de que solo muestre al remitente su mail?
gracias compañeros!
Respuesta #1
Supongo que con un foreach podrías enviar un email para cada persona.. Ya que tienes un array con todos los email. Ahorita no tengo tiempo para probar lo que digo y darte un ejemplo. Pero por los momentos, doy la idea ajaja.
Respuesta #3
Bueno al final si conseguí unos minutos. Usando foreach, mira.
Mensaje enviado a: hola@hotmail.com
Mensaje enviado a: chao@hotmail.com
Mensaje enviado a: ok@hotmail.com
Lo que quiere decir que por cada correo está imprimiendo un mensaje, ahora ¿Por qué no en vez del mensaje, colocamos la función mail()?
<?php $emails = array("hola@hotmail.com","chao@hotmail.com","ok@hotmail.com"); foreach ($emails as $remitente) { echo "Mensaje enviado a: " . $remitente; echo "<br>"; } ?>Si pruebas eso te das cuenta que imprime:
Mensaje enviado a: hola@hotmail.com
Mensaje enviado a: chao@hotmail.com
Mensaje enviado a: ok@hotmail.com
Lo que quiere decir que por cada correo está imprimiendo un mensaje, ahora ¿Por qué no en vez del mensaje, colocamos la función mail()?
<?php $emails = array("hola@hotmail.com","chao@hotmail.com","ok@hotmail.com"); foreach ($emails as $remitente) { mail($remitente, 'Titulo email', 'Mensaje email'); } ?>Pruébalo a ver que tal :)
Respuesta #4
https://datoweb.com/post/2541/envio-correos-a-todos-los-email-en-una-tabla
Respuesta #5
lo probe y segun tu ejemplo, parece que bien, pero como integro esto a la funcion para que saque los mails??
Respuesta #6
¿A que te refieres con sacar los mails? ¿A sacar los correos de una base de datos?
Respuesta #7
si, yo use el ejemplo que mostro alber y va bien, lo unico es lo que comento... que no quiero que la gente vea el resto de remitentes
Respuesta #8
Entiendo. Bueno la función mail tiene unos parámetros.
Ahora, ¿cómo integras el ejemplo de alber con el mío? Bueno. En el ejemplo de alber estás sacando los correos de una base de datos y los estás almacenando en un array. Mientras en mi ejemplo yo lo hice "a mano":
Lo que debes hacer es que en vez de crear un arreglo "a mano", hacer una consulta almacenándola en un arreglo con la función mysql_fetch_assoc o mysql_fetch_array().
El ejemplo completo sería:
Si no me equivoco, la sentencia GROUP BY es para que agarre dos correos iguales en caso de que existan dos usuarios con el mismo correo, sino, estarías enviando 2 mensajes al mismo correo.
mail( remitente, titulo, mensaje);Y lo que veo en el ejemplo de alber es que el parámetro remitente no es un solo correo sino un conjunto de varios que se envían una sola vez porque estás ejecutando la función mail() una sola vez. En el ejemplo que yo te doy ejecutarás la función mail tantas veces como correos haya, pero cada uno va hacia un solo remitente.
Ahora, ¿cómo integras el ejemplo de alber con el mío? Bueno. En el ejemplo de alber estás sacando los correos de una base de datos y los estás almacenando en un array. Mientras en mi ejemplo yo lo hice "a mano":
$emails = array("hola@hotmail.com","chao@hotmail.com","ok@hotmail.com");Alber lo hizo dinámicamente con MySQL:
mysql_select_db($database_conexion, $conexion); //Seleccionamos los emails y los agrupamos para que no se repitan $query_Consulta = "SELECT email FROM users GROUP BY email"; $Consulta = mysql_query($query_Consulta, $conexion) or die(mysql_error()); $row_Consulta = mysql_fetch_assoc($Consulta);En este caso, lo que en mi ejemplo es $remitente, en el ejemplo de alber es $row_Consulta.
Lo que debes hacer es que en vez de crear un arreglo "a mano", hacer una consulta almacenándola en un arreglo con la función mysql_fetch_assoc o mysql_fetch_array().
El ejemplo completo sería:
<?php require_once('../conexion.php'); mysql_select_db($database_conexion, $conexion); //Seleccionamos los emails y los agrupamos en un arreglo $query_Consulta = "SELECT email FROM users GROUP BY email"; $Consulta = mysql_query($query_Consulta, $conexion) or die(mysql_error()); $row_Consulta = mysql_fetch_array($Consulta); foreach ($row_Consulta as $remitente) { //Enviamos el correo a la lista de contactos mail($remitente, 'Titulo email', 'Mensaje email'); } mysql_free_result($Consulta); ?>
Si no me equivoco, la sentencia GROUP BY es para que agarre dos correos iguales en caso de que existan dos usuarios con el mismo correo, sino, estarías enviando 2 mensajes al mismo correo.
Respuesta #9
solo me envia al primer registro en la sql...
despues de trastear un poco, encontre esto
despues de trastear un poco, encontre esto
mail(null, $asunto, $mensaje, "MIME-Version: 1.0 Content-type: text/html; charset=iso-8859-1 From: boletin@mail.com Bcc: $para" . "\r\n") or die("Error al Enviar el Email");de esta forma me llega el correo sin mostrar a quien se envia.