Ver Mensaje Individual
  #8 (permalink)  
Antiguo 06/04/2013, 11:50
ignaciochef
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Enviar consulta de visitantes a los anunciantes!!!!

Cita:
Iniciado por jariza Ver Mensaje
Hola,

La solución fácil sería sustituir esto:
Código PHP:
mail($enviar_a$asunto$mensaje_email$cabeceras); 
por algo así como esto:
Código PHP:
$res select("mail FROM  class_members");
while(
$row mysql_fetch_assoc($res)) {
    
mail($row['mail'], $asunto$mensaje_email$cabeceras);

El problema es que a más anunciantes más tardan en enviarse los mails.

Otra alternativa sería esta:
Código PHP:
$res select("mail FROM  class_members");
$correos = array();
while(
$row mysql_fetch_assoc($res)) {$correos[] = $row['mail'];}
mail(implode(','$correos), $asunto$mensaje_email$cabeceras); 
El problema de esta es que todos los anunciantes verán las direcciones de correos de los demás, pero tardará muy poco en ejecutarse.

Una tercera solución sería usar un sistema de lista de correos o de boletines, apuntar a los anunciantes a él y hacer que el formulario mande un correo a la lista y no a [email][email protected][/email]. Si el sistema de boletines que tienes implementado es capaz de reenviar correos ya tienes el tema solucionado.

Por cierto, el código lo he escrito sin depurar y sin hacer control de errores. Tampoco indicas cómo se llama la columna donde se almacenan los correos, así que he usado "mail" como nombre.

¡Ah!, tampoco se hasta qué punto es bueno que pongas las key de recaptha XD

Un saludo :)

Mira un formulario que ya tengo y que llega bien a los distintos usuarios es el del boletin que lo modifique:

<?
require_once("../conn.php");
require_once("access.php");
;

if(isset($_POST[s1]))
{
$q1 = "select * from class_members";
$r1 = mysql_query($q1) or die(mysql_error());

while($a1 = mysql_fetch_array($r1))
{
$to = $a1[email];
$subject = $_POST[sub];
$mail = $_POST[email];
$message = $_POST[MyMessage];
$mensaje = "Este mensaje fue enviado por " . $nombre . " \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";
$mensaje .= "Mensaje: " . $_POST[MyMessage] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "From: $aset[SiteTitle] <$aset[ContactEmail]>\n";
$headers .= "X-Priority: 1\n";
$headers .= "X-MSMail-Priority: High\n";
$headers .= "X-Mailer: PHP/" . phpversion()."\n";

mail($to, $subject, $message, $headers);

$i++;
}

$error = "$i mensajes han sido enviados";
}

//get the number of registered members
$q1 = "select count(*) from class_members";
$r1 = mysql_query($q1) or die(mysql_error());
$a1 = mysql_fetch_array($r1);

if($a1[0] == 0)
{
echo "<br><br><center>Aún no hay miembros registrados!</center>";
exit();
}

?>

<script>
function CheckMail() {

if(document.f1.sub.value=="")
{
alert('Ingrese el asunto del boletin, por favor!');
document.f1.sub.focus();
return false;
}

if(document.f1.MyMessage.value=="")
{
alert('Ingrese el texto del boletin, por favor!');
document.f1.MyMessage.focus();
return false;
}

}
</script>

<br><br>
<form method=post onsubmit="return CheckMail();" name=f1>
<table align=center width=500>

<tr>
<td></td>
<td><b><br>Enviar consulta a todos los anunciantes</b><br><?=$error?></td>
</tr>

<tr>
<td align=right>Asunto:</td>
<td><input type=text name=sub size=36></td>
</tr>
<tr>
<td align=right>Email:</td>
<td><input type=text name=email size=36></td>
</tr>
<tr>
<td align=right valign=top>Por favor ingrese email,telefono,nombre y detalle del evento solicitado:</td>
<td><textarea name=MyMessage rows=10 cols=35></textarea></td>
</tr>

<tr>
<td>&nbsp</td>
<td><input type=submit name=s1 value="Enviar" class="sub1"></td>
</tr>

</table>

</form>

<?

?>
El tema es que solo llega:Asunto y mensaje.
Se puede modificar para que tambien llegue direccion de mail,nombre,telefono,etc?