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.
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....
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?
Yo haría algo así,
Esto para que se refresque la pagina, cada x tiempo.
<meta http-equiv='refresh' content='5;url=index.php'>
y esto, para agregar minutos e identificar a que hora se enviará el proximo correo,
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.
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.
mmm Sí, tiene que estar el usuario en la pagina. Pues, entonces realiza una aplicación de escritorio, xD. .NET, por ejemplo.
Hice un script similar, la idea de refrescar la pagina es muy buena xD....
time_script.php<?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
<?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)
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
~ 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.
ps que el cron active mi script y haci mi script se mantiene ejecutandose...
ok lo probare, el hosting no me eliminara el script ni nada por el estilo por estar ejecutandose a cada rato no?
Ps nose que decirte... A ver si otro que sepa mas del tema te responde... Ps yo creo que no xD