Newsgroup: it.comp.www.php
Titolo: invio notifiche, consiglio teorico

Ciao a tutti
Ho realizzato un visualizzatore di immagini per il mio archivio di
foto. Mi piacerebbe integrare con un sistema di notifiche, dove
l'utente registrato viene avvisato quando un'altro risponde a un suo
commento. Il mio dilemma di "concetto" è il seguente: in quale momento
devo inviare le notifiche agli altri utenti? Quando l'utente clicca
per memorizzare la sua risposta? Mettiamo che una foto è stata
commentata da 10 persone, all'undicesima devo inviare 10 email di
avviso. Mi viene da pensare che si accumuli una attesa che renda
l'esperienza sul sito poco confortevole. Potrei risolvere realizzando
una lista di notifiche, che verranno spedite insieme in un certo
orario, magari quando statisticamente ci sono poche visite. Ma chi mi
scorre la lista? Un applicativo esterno al webserver?
In pratica, quale è la giusta regola per fare questo lavoro?
La mia macchina server è un P3 a 1Ghz con 512Mb RAM, sempre acceso e
connesso a Alice 7mega, con Ubuntu 9.10 Desktop, Apache+PHP5+Mysql.
Fodox

 In pratica, quale è la giusta regola per fare questo lavoro?
la giusta regola non esiste, dipende da quanto vuoi essere invasivo/
invadente nella casella mail degli utenti.
Per esempio, facebook  manda mail ad ogni commento.
Magari in fase di iscrizione chiedi se uno vuole e meno tali notifche, 
poi manda ad ogni submit di commento.

 le notifiche agli altri utenti?
Se vuoi fare le cose "di fino" puoi inviare notifica dopo il primo 
commento, e basta.
Quando l'utente si logga e va a leggere i commenti "azzeri il contatore", 
e ripeti dal passo precedente con il primo commento postato 
successivamente a quel momento.
Non so se mi sono spiegato bene, in caso provo a spiegarlo meglio. :)
Bye.

ok ragazzi, avete detto entrambi una cosa giusta. Avevo gia' previsto
di mettere un pannello di controllo utente dove far scegliere l'invio
di notifiche o meno e perche' no,  posso anche fare inviare solo alla
prima risposta.
Il mio pensiero adesso è rivolto al carico di lavoro sullo script. Se
l'utente è il centesimo a commentare una foto, significa che appena
clicca parte la funzione che invia 100 email: l'utente rimarrà in
attesa e avra' il browser bloccato dall'operazione o il lavoro verra'
gestito in background dal webserver? E' questo che non ho capito.
Ah, per inviare email sicuramente usero' PHPmailer.
grazie
   Fodox

 inviare email sicuramente usero' PHPmailer.
Se hai un mailserver locale (caso tipico nei server Linux) l'invio di 100 
mail richiede (su hardware decente) circa 1 centesimo di secondo, perche` 
poi e` il mailserver che si prende carico di inoltrarle ai destinatari.
Piu` che il lavoro di invio delle mail, credo che il problema sia 
l'estrazione dal DB dei destinatari che le vogliono ricevere, ma e` lo 
stesso lavoro che fai per visualizzare i commenti, e se il DB e` fatto 
bene richiede anche lui tempi dell'ordine dei centesimi di secondo, anche 
meno.
Se hai un mailserver remoto dipende dalla connessione con quel mailserver.
Bye.


se il mail server è remoto e quindi neceissita tempi di comunicazione 
lunghi potresti chiamare via ajax la pagina che spedisce e fregartene 
della risposta. Non puoi gestire errori ed eccezioni ma sicuramente non 
hai elementi bloccanti (e visto lo scenario di sole notifiche mail io lo 
troverei accettabile).
-- 
Z.

 poi e` il mailserver che si prende carico di inoltrarle ai destinatari.
Interessante. Avere un mailserver casalingo mi apre anche altre
strade, tipo farmi da provider di posta :-)
L'hardware non è recente, come ho scritto nel primo post, né ho mai
installato un mailserver, però è un punto di partenza per fare altre
esperienze.

 troverei accettabile).
uhm, e se un utente ha javascript disattivato? Lo so che oggi senza
javascript con Internet non ci fai niente, ma finche' mettono quella
spunta sui browser non vorrei precludermi la strada.
Tuttavia Il lavoro asincrono era l'altra idea che avevo e a tal
proposito ho trovato un articolo interessante (http://
www.htmlcenter.com/blog/running-php-scripts-with-cron/
). Praticamente
su Linux posso avviare uno script PHP a tempi scanditi, che gira su un
task indipendente. Lo script potrebbe leggere la coda di notifiche
inserite in una tabella e l'utente che scrive un messaggio dovrebbe
attendere solo che venga creato un record su tale archivio.
Grazie! Direttamente o indirettamente mi avete dato un grande aiuto!
Fodox

 esperienze.
Tenersi la posta in casa ï¿½ un PainInTheAssï¿½
Cmq due consigli:
Quando configuri il demone smtp digli di inoltrare all'smtp del tuo ISP, 
senza autenticazione verso quello.Se la mandi direttamente dal tuo ip 
finisci in blacklist in due secondi. Sicuramente al primo cambiamento di 
ip se sei su ip dinamico
Occhio a chiudere bene l'smtp che di zombie ï¿½ giï¿½ piena internet
Marco

 Grazie! Direttamente o indirettamente mi avete dato un grande aiuto!
Figurati, spesso dando idee agli altri ne vengono di nuove anche x se 
stessi poi :P
-- 
Z.

 Marco
so che rasento l'OT, ma sai consigliarmi un mailserver x ubuntu? da
qualche parte devo iniziare ^_^


io vado di Gentoo, ma per Ubuntu guarderei "ubuntu Dovecot Postfix" su 
google, sicuramente trovi
Per gentoo guarda qui (� molto generica ed istruttiva)
http://en.gentoo-wiki.com/wiki/Mail_server_using_Postfix_and_Dovecot
Non rasenti l'OT, ci sei in pieno :)
Se ti serve altro aiuto vai su
it.comp.os.linux.iniziare
it.comp.os.linux.sys
it.comp.os.linux.ubuntu
Ciao
Marco

 Marco
Non sai quanto hai ragione.
Ho SOLO installato il pacchetto dovecot e poi ho accantonato la cosa
per un paio di giorni. Be' in quei 2 giorni gia' sparavo email a tutto
il mondo :-P
Mi sono accorto dal led del router che andava a mille, ho dovuto
staccare fisicamente il server dalla rete, ha talmente tante email in
coda da inviare che non riesco a lavorarci e mi tocca formattarlo.
Strano che con le impostazioni di base sia cosi' vulnerabile, e che me
lo abbiano tracciato cosi' in fretta. Adesso vado nel forum di Ubuntu.
CIAO!

 lo abbiano tracciato cosi' in fretta. Adesso vado nel forum di Ubuntu.
Non ho mai usato dovecot come SMTP (solo IMAP e POP3), ma mi pare strano 
che sia configurato di base come open relay.
E` piu` probabile che ci fosse qualche script in PHP o qualche altro buco 
che permetteva di spedire email senza controlli tipo captcha e a 
indirizzi arbitrari.
Bye.