Foros del Web » Programando para Internet » PHP »

enviar email con condicion

Estas en el tema de enviar email con condicion en el foro de PHP en Foros del Web. hola amigos quiero enviar un email a unos 500 amigos don info de mi sitio entonces ya tengo me base de datos con los nombre ...
  #1 (permalink)  
Antiguo 04/06/2011, 10:38
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
enviar email con condicion

hola amigos
quiero enviar un email a unos 500 amigos don info de mi sitio entonces ya tengo me base de datos con los nombre y emails de ellos y en esta puse estado en donde 1 esta esta habilitado para enviarle el email y 0 q ya se le envio el email he trabajado en el codigo con ayuda de algunos amigos de este foro pero no he podido aun
cheque el codigo

Código PHP:
<?php require_once('../../../Connections/bb.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}
// AGREGA AQUÍ TU CONEXIÓN A *LA DB.

mysql_select_db($database_bb$bb);

// AQUÍ SQL PARA MOSTRAR REGISTROS CON ESTADO 1.
$query_envioemail "SELECT * FROM email WHERE estado = '1' ORDER BY id_email ASC LIMIT 5";
$envioemail mysql_query($query_envioemail$bb) or die(mysql_error());
$row_envioemail mysql_fetch_assoc($envioemail);
$totalRows_envioemail mysql_num_rows($envioemail);

while (
$row_envioemail=mysql_fetch_array) { //COMIENZO DEL WHILE

$estado =$row_envioemail['estado'];

if (
$estado == 1) {

$email $row_envioemail['name'];
$id $row_envioemail['id_email'];  
include_once(
'../funciones/php-mailer/class.phpmailer.php');


$mail= new PHPMailer();
$bodyeregi_replace("[\]",'',$body);

$mail->From "[email protected]";
$mail->FromName "xxxxx";
$mail->Subject "Tu boletin";
$mail->AltBody " Para ver el mensaje, por favor, utilice un visor de HTML de correo electrónico compatibles!"// optional, comment out and test

$mail->Body "aqui mi info";

$mail->AddAddress($row_envioemail['email']);

if (!
$mail->Send()) { 
echo 
'Fallo *envio mail'; *
//FIN DEL WHILE


?>

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>comando caducar</title>
</head>

<body>
</body>
</html>
<?php
mysql_free_result
($envioemail);}}}
?>
aun o me funciona la idea es trabajarlo con el crob job q cada 1hora trabaje y q envie 5 0 10 email
y q si se a envio que cambie su estado a 0

gracias
  #2 (permalink)  
Antiguo 04/06/2011, 11:36
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: enviar email con condicion

que complicado que sos amigo!!!!!!!!
para algo tan simple....
  #3 (permalink)  
Antiguo 04/06/2011, 11:41
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: enviar email con condicion

Patriarka porq dises eso como lo plantearias vos?
  #4 (permalink)  
Antiguo 04/06/2011, 12:08
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: enviar email con condicion

simplemente que liste a los amigos y sus mail
recorrerlos y enviar el mail a cada uno

$sql="select * amigos where estado=1";
$res=mysql_query($sql);
if(mysql_num_rows($res)){
while($row=mysql_fecth_object($res)){
echo $row->emailAmigo;
echo $row->nombreAmigo;
mail(parameters.....);
}
}else{ echo 'no hay amigos';}
  #5 (permalink)  
Antiguo 04/06/2011, 13:46
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: enviar email con condicion

Patriarka bueno y para que cuando ya les haga envio el mail le cambie el estado a 1? y en la sql no habría que hacerle un LIMIT? para evitar q se pase de el tope de envio por horas?
  #6 (permalink)  
Antiguo 04/06/2011, 13:58
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: enviar email con condicion

y bueno eso agregalo vos:

while($row=mysql_fecth_object($res)){
echo $row->emailAmigo;
echo $row->nombreAmigo;
mail(parameters.....);
$sql="UPDATE amigos
SET estado = '0'
WHERE amigo_id = ".$row->amigo_id;
}
  #7 (permalink)  
Antiguo 04/06/2011, 14:22
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: enviar email con condicion

JEJEJ gracias voy a trabajar entonces karma pa vos ;)
  #8 (permalink)  
Antiguo 04/06/2011, 14:29
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: enviar email con condicion

la idea es hacer cualquier problema simple
leyendolo bien a tu codigo no esta tan mal, pero si hacelo un poco mas simple
  #9 (permalink)  
Antiguo 06/06/2011, 17:29
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: enviar email con condicion

checa este codigo como voy ? me faltaria el update para cambiar el status
Código PHP:
Ver original
  1. <?php
  2. include("../connect.php");
  3.     $id = preg_replace("/'\/<>\"/","",$_GET['id']);
  4.     if (empty($id))
  5.     die("Invalid ID");
  6.     $link = "SELECT * FROM newsletters WHERE id='$id'";
  7.     $res = mysql_query($link) or die(mysql_error());
  8.     $r = mysql_fetch_assoc($res);
  9.     $subject = $r['name'];
  10.     $message = $r['content'];
  11.  
  12.  
  13. require("class.phpmailer.php");
  14.  
  15. $mail = new PHPMailer();
  16. $mail->Host = "mail.midominio.com";
  17. $mail->From = "[email protected]";
  18. $mail->FromName = "List manager";
  19. $mail->Subject = "Subject del correo";
  20.  
  21. mysql_connect("localhost", "root", "xxxxx");
  22. mysql_select_db("newsletterdb");
  23. $result = mysql_query("SELECT * FROM users WHERE status='subscribed'");
  24. while ($row = mysql_fetch_array($result)) {
  25.     // HTML body
  26.     $body = "Hola <strong>".$row["name"]."</strong>, ";
  27.     $body.= "$message";
  28.     // Text body
  29.     $text = "Hola ".$row["name"].", \n\n";
  30.     $text.= "$message";
  31.     // Configurar Email
  32.     $mail->Body = $body;
  33.     $mail->AltBody = $text;
  34.     $mail->AddAddress($row["email"], $row["name"]);
  35.     // Enviar el email
  36.     if(!$mail->Send()) {
  37.         echo "Error al enviar a: " . $row["email"] . "<br>";
  38.     }else{
  39.    echo "Mensaje enviado";
  40. }
  41.     $mail->ClearAddresses();  
  42. }
  43. ?>

Etiquetas: email
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:42.