Newsgroup: it.comp.os.linux.development
Titolo: Manipolare /var/spool/mail

Ho in mente un sistema di votazione via mail per i soci di una
associazione.
C'è un meccanismo di verifica della validità del voto per mezzo di
password, e quello che devo scrivere è il programma che faccia lo
scrutatore.
C'è qualcosa di già fatto che devo solo configurare? 
Perchè quello a cui ho pensato è un programma simile a vacation, quindi
invocato tramite .forward e che ottiene la mail su stdin, la legge, ne
determina la liceità, invia la ricevuta di voto (o l'avviso di voto non
valido), e archivia il risultato.
Il problema è: quante istanze di vacation girano contemporaneamente?
Se ne gira sicuramente una sola per volta non ci sono problemi,
altrimenti ce ne potrebbero essere diversi, per cui la domanda è: se
metto un meccanismo di locking, non è che bloccando una istanza dello
scrutatore poi blocco Sendmail, Postfix o chi l'ha invocato? 
Nel qual caso che faccio, ritorno subito e lascio un processo figlio che
faccia i comodi suoi?

Il problema è: quante istanze di vacation girano contemporaneamente?
Definisci un utente di posta apposito e piazzi il programma nel .procmailrc.
Poi fai un normalissimo fetchmail e analizzi una mail alla volta.
--
  	Giuseppe "Cowo" Corbelli  -->>  Riding on Linux-2.2.16
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Computers are not intelligent.  They only think they are. !>-

Poi fai un normalissimo fetchmail e analizzi una mail alla volta.
Cmq il server sarebbe sempre connesso e con IP statico, e tutto il suo
bel dominio, quindi fetchmail non mi servirebbe (o meglio, servirà solo
per fare le prove qui, prima di far danni lì).

 C'è qualcosa di già fatto che devo solo configurare? 
Io non conosco nulla di già pronto, ma di consiglio procmail al posto di vacation.  Può anche darsi che riesci a parserizzare il voto senza utilizzare altri linguaggi (bash, perl, awk?) e puoi avere tutte le istanze che vuoi con locking automatico.
-- 
| Lorenzo Cappelletti  Voice&SMs: +39 0347 4874077  Fax: +39 02 700 502773 |
|  e-mail: L.Capp...@POBoxes.com      ax25: 
iw3...@in3tti.itaa.ita.eu
  |
|   home page: 
http://www.poboxes.com/l.cappelletti/
   Linux User #30171   |
|      Fingerprint: 8CDD 3408 53B2 6122 99DA EE37 1523 68FC D906 4C08      |

 man page di fetchmail.
Procmail  e` un  problema solo  se lo  usi da  fetchmail. Se lo  invochi
dall'MTA  non  ci  sono  casini. Smanettando su  SmartList  (gestore  di
Mailing List tramite script di procmail)  ho tirato fuori un po' di roba
interessante (ci gestisco una Mailing List in dial-up).
-- 
Emmanuele Bassi         |     [ 
http://digilander.iol.it/ebassi/linux/
 ]
   (Zefram)             |                     [ 
emmanue...@iol.it
 ]
                        |                 WARNING: Email Address is FAKE
GnuPG Key Fingerprint: 9747 635E B95A B0B3 4370 1CAA CAF7 512B 945C A44C

Io non conosco nulla di già pronto, ma di consiglio procmail al posto di vacation.  Può anche darsi che riesci a parserizzare il voto senza utilizzare altri linguaggi (bash, perl, awk?) e puoi avere tutte le istanze che vuoi con locking automatico.
E' esattamente quello che penso di fare, infatti dico un programma che
come vacation sia invocato via .forward
(Le mail di voto sono tutte well-formed, nascono dalla compilazione di
un form in HTML).
Quindi il punto ritorna: ma se il programma invocato via .forward non
torna, siamo sicuri sicuri che non succede nulla a chi l'ha chiamato?

Procmail  e` un  problema solo  se lo  usi da  fetchmail. 
Ho dato una scorsa molto veloce a procmailex(5) e non mi piace :-)
Il punto è che il sistema non deve solo limitarsi ad inviare una mail di
avvenuta ricezione, o cmq manipolare delle mail, ma (sopratutto)
verificare la validita' del voto e registrarlo, e tutto questo sarà
fattibile con procmail ma non in modo semplice, a questo punto meglio
scrivere tutto da capo.
Solo che mi pare difficile che nessuno l'abbia già fatto.
PS: Le ML gestite in dial-up si gestiscono con Egroups :-))

 PS: Le ML gestite in dial-up si gestiscono con Egroups :-))
Solo se vuoi le cose fatte facili... :-)
+++
[0] Questa sarebbe anche meglio: estrai l'header con formail e fai una
verifica a colpi di awk.


La validazione di che tipo e`? Username e Password in chiaro nel body?
Ehm, deduco che tu non abbia più nulla a che fare con ItaTrek :-)
Nel body.
Poi non so come dirtelo...ma le note a pie' di pagina rendono arduo il
quoting :-)
Aggiungo: se conosco la struttura della mail, non c'è nessun problema ad
"autenticarla", da questo punto di vista anche se una password in un
header *potrebbe* rendere più facile la verifica, devo fare un sacco di
cose ed evitare problemi come voti contati due volte, non contati
affatto, ricevute spedite una volta di troppo, e così via, per cui
procmail non gliela fa'. 
Ma possibile che nessuno abbia scritto il programmillo adatto? O__O

 faccia i comodi suoi?
Inutile complicazione.
-- 
Ciao, Maurizio.

 Ma possibile che nessuno abbia scritto il programmillo adatto? O__O
Io non ne conosco... sorry.
-- 
Emmanuele Bassi         |     [ 
http://digilander.iol.it/ebassi/linux/
 ]
                        |                     [ 
emmanue...@iol.it
 ]


di secondo possa realmente avere qualche effetto collaterale.......
Il punto è: se le cose vanno male e quell'istanza dello scrutatore non
ritorna, succede qualcosa al'MTA oppure no? Appunto volevo tornare
subito e lasciare in piedi un processo figlio che faccia quello che deve
fare, almeno se le cose vanno male semplicemente non conto i voti e il
danno rimane limitato.

per fare le prove qui, prima di far danni lì).
OK. Allora dovresti far passare per procmail ogni mail deliverata dal demone
smtp. Con postfix e sendmail si fa definendo un file di forward, ma non
chiedermi di piu' perche' non sono molto ferrato in questo campo.
-- 
        Giuseppe "Cowo" Corbelli  -->>  Riding on Linux-2.2.16
	**ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! When you say "I wrote a program that crashed Windows", people just stare
     at you blankly and say "Hey, I got those with the system, *for free*" !>-
                                (By Linus Torvalds)

procmail.
man fetchmail e leggi riguardo l'opzione mda.

 danno rimane limitato.
Postfix "ammazza" i processi lanciati via .forward do 1000 sec (configurabili)
-- 
Ciao, Maurizio.

Postfix "ammazza" i processi lanciati via .forward do 1000 sec (configurabili)
Questo mi serviva, grazie!
(anche se non e' detto che giri proprio Postfix, ma almeno comincio a
vedere una possibilita')