Envio de mails cada cierto tiempo (No Spam)

Iniciado por mark182, 30 Agosto 2010, 21:45 PM

0 Miembros y 1 Visitante están viendo este tema.

mark182

Buenas, tengo usuarios registrados en mi web y una base de datos que tiene eventos con su correspondiente dia. Queria saber si hay forma que llegado ese dia (o un par de horas antes a ese dia), se envie un mail automaticamente con el evento que le corresponde a ese dia. Hay forma de hacerlo?

Gracias.

~ Yoya ~

Toma el dia y hora, y compárala con el dia y hora que quieres que se envie, si la condición es correcta, ps envia el mail....

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

mark182

Si, ya lo habia pensado comprar la fecha del servidor con la fecha del evento, pero como hago un scrip que este comprobando todo el tiempo y automaticamente la fecha y hora del servidor?

Shell Root

#3
Yo haría algo así,
Esto para que se refresque la pagina, cada x tiempo.
Código (html4strict) [Seleccionar]
<meta http-equiv='refresh' content='5;url=index.php'>

y esto, para agregar minutos e identificar a que hora se enviará el proximo correo,
Código (php) [Seleccionar]
function addMinuts($sMins){# Function to add minutes to the current time
 $sAddition = strtotime($sStart .' + '.$sMins.' mins');
 $sTime = (date('H:i:s', $sAddition));
 return $sTime;
}

echo '<b>Fecha actual:</b> '.date('H:i:s');
echo '<br>';
echo '<b>Proximo correo:</b> '.addMinuts(60);


PoC:
Fecha actual: 16:23:48
Proximo correo: 17:23:48


Nota: Ahora solo te falta ponerle la condición de la hora en la que quieres enviar el correo.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

mark182

Gracias por su respuestas, pero tengo una duda:

Citar<meta http-equiv='refresh' content='5;url=index.php'>

con este meta el usuaria no tendria que estar 5 segundos para actualizar la web? o no estoy entendiendo muy bien el funcionamiento de este meta?

Yo lo que quiero es que sin que ningun usuario, ni el administrador del sitio ingresen a la web, el sistema chekea solo si es el dia para enviar el mail o no. Gracias nuevamente.

Shell Root

mmm Sí, tiene que estar el usuario en la pagina. Pues, entonces realiza una aplicación de escritorio, xD. .NET, por ejemplo.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

~ Yoya ~

#6
Hice un script similar, la idea de refrescar la pagina es muy buena xD....

time_script.php
Código (php) [Seleccionar]
<?php

class ejecucion {
private 
$validar;
private 
$seg;
private 
$archivo;

public function 
refresh($seg$archivo){
$this->seg $seg;
$this->archivo $archivo;
}

public function 
time_script($mes,$dia,$hora,$min){
$fecha time ();
if(
date('n',$fecha) == $mes && date('j',$fecha) == $dia && date('H',$fecha) == $hora && date('i',$fecha) == $min){
$this->validar true;
return 
$this->validar;
}else{
sleep($this->seg);
header ("Location: ".$this->archivo);

}
}
//Fin del metodo time_script
}//Fin de la clase ejecucion
?>


mail.php

Código (php) [Seleccionar]
<?php
include('time_script.php');

$new = new ejecucion;
$new->refresh(5'mail.php');//Refresco cada 5 segundo el archivo mail.php
$resultado $new->time_script(8,30,17,11);//Mes, Dia, hora y minuto
if($resultado){
echo 
"Enviando correo";
}
exit;

?>






CitarYo lo que quiero es que sin que ningun usuario, ni el administrador del sitio ingresen a la web, el sistema chekea solo si es el dia para enviar el mail o no. Gracias nuevamente.

Usa cron...
http://es.wikipedia.org/wiki/Cron_(Unix)
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

mark182

Gracias ~ Yoya ~ por los script y voy a averiguar un poco mas acerca del cron, que algo habia escuchado. Si me sale lo que quiero hacer despues lo pongo para sumar al foro xD

mark182

~ Yoya ~  estuve mirando lo del cron job y esta bueno, pero no hace lo que quiero. Ya que al cron le tenes que especificar una fecha que siempre sera la misma para ese archivo (el .php que contiene el script) y yo lo que quiero es que se ejecute el script segun el registro de fecha que tengo en la BD.

~ Yoya ~

ps que el cron active mi script y haci mi script se mantiene ejecutandose...
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.