Newsgroup: it.comp.os.linux.sys
Titolo: Un buon gestore di Mailing List.

AAA. Cercasi disperatamente buon programma di gestione Mailing List.
Attualmente sto' usando Mailman, scritto in Python, ma ha diversi
problemini. In primo luogo la sua interfaccia di gestione (Web) e'
eccessivamente macchinosa, in secondo luogo e' privo di certe
"funzionalita'" che io ritengo indispensabili. Per esempio la possibilita'
di bloccare selettivamente certe cose (attachments/certi subject).
Prima di mettermi a svilupparne uno per conto mio volevo sapere se
qualcuno ha gia' provato qualche prodotto alternativo e come si e'
trovato. Anche commerciali, mi vanno bene.
Davide

 trovato. Anche commerciali, mi vanno bene.
Puoi provare anche gli onnipresenti Majordomo e ezmlm, sono testati,
usatissimi e versatili.
-- 
Ciao da Villo  -  GPG public key available
                  Ferrara LUG 
http://ferrara.linux.it

 trovato. Anche commerciali, mi vanno bene.
Io me lo sono creato, ed è veramente semplice.
Ti basta un utente dedicato allo scopo, e un po' di pazienza con
procmail, formail, awk, cat, mutt (per le risposte del robot): tutta
roba che è di default su tutte le distribuzioni.
Crea un utente, es. mylist. Ovviamente l'utente deve essere
raggiungibile dall'esterno, quindi se tu mandi un'e-mail a
myl...@mysystem.it
 gli deve arrivare (che poi sarà l'indirizzo della
mailing list).
Ora andiamo in /home/mylist e impostiamo il .procmailrc di questo
utente:
---8<---
:0
* ^FROM_MAILER
/dev/null
:0
* ^FROM_DAEMON
/dev/null
# killa eventuali allegati binari
:0 B
* ^Content-Type: application/octet-stream;
/dev/null
# killa in ogni modo i messaggi più lunghi di 15 KB (15360 bytes)
:0
* >15360
/dev/null
:0 c
/home/mylist/Mail/archivio
##### intercetta comandi
:0
* ^Subject: UNSUBSCRIBE
| formail -x From: > /tmp/mittente ; \
MITTENTE=`cat /tmp/mittente | cut -d \< -f 2 | cut -d \> -f 1` ; \
cat iscritti | grep -v $MITTENTE > iscritti ; \
COMANDO='mutt -s Re:UNSUBSCRIBE -x -i ~/unsubscribe.txt' ; \
STRINGA=$COMANDO\ $MITTENTE ; \
$STRINGA < "." ; \
rm -f /tmp/mittente
:0
* ^Subject: SUBSCRIBE
| formail -x From: > /tmp/mittente ; \
MITTENTE=`cat /tmp/mittente | cut -d \< -f 2 | cut -d \> -f 1` ; \
echo $MITTENTE >> iscritti ; \
COMANDO='mutt -s Re:SUBSCRIBE -x -i ~/subscribe.txt' ; \
rm -f /tmp/mittente
# elimina i post di chi non e' iscritto
:0 Wc
| formail -x From: > /tmp/mittente2 ; \
rm -f /tmp/respinto2 ; \
MITTENTE=`cat /tmp/mittente2 | cut -d \< -f 2 | cut -d \> -f 1` ; \
if ! (echo $MITTENTE | grep -F -f iscritti) then (touch /tmp/respinto2) fi ; \
rm -f /tmp/mittente2
:0
* ? test -e /tmp/respinto2
/dev/null
##### smista alla lista
:0
| smista 
myl...@mysystem.it
---8<---
questo "smista" è uno scriptino di bash:
---8<---
#!/bin/bash
ISCRITTI="`cat ~/iscritti | awk '{print $1;}' | tr '\n' ',' `"
(
        formail \
          -I "To: listnull" \
          -I "Cc:" \
          -I "Reply-To: $1" \
          -I "X-Mailing-List: mylist"
        cat ~/firma.txt
) | sed 's/^\.$/\.\./' | /usr/sbin/sendmail $ISCRITTI
---8<---
che può trovare posto anche in /home/mylist. (non scordare il chmod
0500 smista, che sono i permessi minimi).
A questo punto, non ti resta che organizzare i file ~/subscribe.txt e
~/unsubscribe.txt, dove metti rispettivamente il messaggio di benvenuto e
quello di conferma di cancellazione dalla lista.
In ~/iscritti invece troverai l'elenco degli iscritti che si aggiunge
man mano, in ~/firma.txt metti quello che vuoi venga "accodato" di
default a tutti i messaggi della lista (io ho messo le istruzioni per
cancellare la sottoscrizione per esempio), infine ~/Mail/archivio che
sarà la mbox dove tutti i messaggi che passano per la lista vengono
archiviati.
Ecco tutto, ora se un utente qualsiasi manda un messaggio con subject
"SUBSCRIBE" a 
myl...@mysystem.it
, automaticamente viene iscritto alla
lista e comincerà a ricevere tutti i messaggi mandati alla lista, con
"UNSUBSCRIBE" invece elimina il suo indirizzo dall'elenco e non riceverà
più niente.
Se invece viene mandato un messaggio a 
myl...@mysystem.it
, questo viene
automaticamente propagato a tutti gli iscritti della lista.
Nota che vi è un controllo per impedire a chi non è iscritto di inviare
messaggi, in questo modo escludi gli spammer rompicazzo.
Ovviamente il sistema si può perfezionare, questa l'ho fatta poco più
che per amici, volendo fare una cosa più raffinata occorrerebbe testare
se l'indirizzo col quale uno si iscrive è funzionante, quindi andando a
testare se ritorna un messaggio di "delivery failed", nel qual caso deve
venire istantaneamente depennato dalla lista degli iscritti...
Poi se uno vuole, può mettere altri filtri, che so testando la
percentuale di maiuscole per segare gli "urlatori", o simili.
Se hai voglia di divertirti, questo è quanto...
-- 
Massimo Bacilieri AKA Crononauta 
mailto:
ulib...@libero.it
 ; ICQ:4005815