Newsgroup: it.comp.www.php
Titolo: Email programmata

Volevo gestire delle scadenze per l'accesso ad un'area riservata da
parte degli utenti.
Chi gestisce gli utenti (chiamiamolo "amministratore") scrive in un
campo i vari dati (nome, cognome, data di scadenza). Vorrei che una
paio di giorni prima di tale data arrivasse una email di avviso
all'amministratore.
Stavo pensando però che l'amministratore non sempre visita il proprio
pannello di controllo quindi non c'è un "timer che sta sempre acceso e
pronto ad inviare l'email il giorno X"...
Mi chiarite questa cosa?
-- 
La rovina del mondo sarà l'indifferenza...
...ma chi se ne fregaaa!

 all'amministratore.
Quello che vuoi fare non è fattibile direttamente con php, perchè il
paradigma client/server riceve una richesta ed esegue un servizio.
Non c'è nulla di "permanente", per così dire.
Dovresti realizzare un processo cron, che venga lanciato tutte le sere e
verifichi le date di scadenza, inviando la mail.
In alternativa, ma è una soluzione molto brutta e poco sicura, nella home
page del sito inserisci il controlla della scadenza.
In questo modo, ogni volta che il sito viene visitato, viene fatto il
controllo e spedita la mail.
E' chiaro che se nessuno visita il sito, nessun controllo viene fatto. Ecco
perchè è brutta.
Ciao
Marco

 Mi chiarite questa cosa?
   Il "timer" te lo mette a disposizione il sistema operativo: cron per 
Unix e "Operazioni pianificate" per Windows. Tutto quello che c'è da 
fare è scrivere uno script PHP che invii la mail e fare in modo che il 
daemo/servizio di scheduling lo esegua (mediante la CLI o richiamandolo 
via HTTP, per esempio con wget) secondo la programmazione necessaria.
   Tempo fa Jurgen Schwietering aveva prodotto e reso pubblico qualcosa 
che, addirittura, aggirava la necessità di uno scheduler locale 
(mettendo a disposizione il suo): leggi il thread all'indirizzo qui di 
seguito riportato.
 
http://groups.google.it/groups?hl=it&lr=&ie=UTF-8&oe=UTF-8&threadm=2111hu4i9v17pipr64ctgo4csgvpp493l5%404ax.com&rnum=1&prev=/groups%3Fq%3Djurgen%2Bcron%2Bgroup:it.comp.www.php%26hl%3Dit%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26group%3Dit.comp.www.php%26selm%3D2111hu4i9v17pipr64ctgo4csgvpp493l5%25404ax.com%26rnum%3D1
-- 
Alla prossima,
Marco

 
dovresti usare un cron sul server , cioè un programma che fa alcune 
operazioni in determinate condizioni di tempo (ora, data ect.)
Se sei in hosting può essere un problema.
Una soluzione alternativa c'è, ma dipende...
  se il tuo sito è molto visitato puoi mettere un piccolo script che va 
a vedersi la data in questione (magari scritta in un file di log)e fa un 
calcolo del tipo
se (dataX - "paio_di_giorni" < adesso) mandami l'email, aggiorna il file 
di log
ciao

Se sei in hosting può essere un problema.
Il server è nel mio ufficio... ed ho anche la password di root.
Nel crontab (comando: crontab -e) vedo e posso editare le varie
operazioni programmate (di default c'era weekly, monthly ecc... io poi
ho aggiunto roba per aggiornare le statistiche del sito una volta al
giorno con awstat).
Che comandi posso usare per fare quello che dici?


 Che comandi posso usare per fare quello che dici?
Buona lettura:
http://www.diludovico.it/guide/cron.shtml
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1
Inviare email con allegati? 
http://url.repository.biz/go/1Z
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y


http://www.diludovico.it/guide/cron.shtml
Grazie... ho letto...
Ho visto che posso usare questo comando:
0 * * * * wget -q -O - 
http://www.dominio.it/script.php
nel file script.php che script ci metto? è lo stesso file che avrei
utilizzato nel sito? cioè:
- guarda che giorno è oggi
- se oggi = datascadenza-2giorni
- manda una mail
- altrimenti stai buono


 nel file script.php che script ci metto? 
L'url utilizzato da wget sarà quello dello script che vuoi venga
lanciato.
