Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Envio correos a todos los email en una tabla

Buenas! He estado probando el ejemplo que publico alber https://www.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!
0
Puntos
9
Resp
517
Visitas
Por zapikero hace 17 meses
Avanzado offline Sitio web

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.
0
Puntos
Por Jose hace 17 meses
Experto offline Sitio web

Respuesta #2

Uff ya se complica la cosa :(
0
Puntos
Por zapikero hace 17 meses
Avanzado offline Sitio web

Respuesta #3

Bueno al final si conseguí unos minutos. Usando foreach, mira.
<?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 :)

0
Puntos
Por Jose hace 17 meses
Experto offline Sitio web

Respuesta #4

https://www.datoweb.com/post/2541/envio-correos-a-todos-los-email-en-una-tabla
0
Puntos
Por zapikero hace 17 meses
Avanzado offline Sitio web

Respuesta #5

lo probe y segun tu ejemplo, parece que bien, pero como integro esto a la funcion para que saque los mails??
0
Puntos
Por zapikero hace 17 meses
Avanzado offline Sitio web

Respuesta #6

¿A que te refieres con sacar los mails? ¿A sacar los correos de una base de datos?
0
Puntos
Por Jose hace 17 meses
Experto offline Sitio web

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
0
Puntos
Por zapikero hace 17 meses
Avanzado offline Sitio web

Respuesta #8

Entiendo. Bueno la función mail tiene unos parámetros.
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.




0
Puntos
Por Jose hace 17 meses
Experto offline Sitio web

Respuesta #9

solo me envia al primer registro en la sql...

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.
2
Puntos
Por zapikero hace 17 meses
Avanzado offline Sitio web

Relaccionados

Para comentar Inicia sesión o Registrate