Ein Mail-to-News Gateway
Von Torsten NeumannUm Mails aus Mailinglisten, z.B. der Linux-Stammtisch-Mailingliste leichter lesen und beantworten zu können, hab ich bei mir daheim ein kleines Mail2News Gateway installiert. Das geht etwa so :
- In die Datei ~/.forward einen Eintrag
"|/usr/bin/filter -vo /home/torsten/.elm/filter-errs"
- Die Datei ~/.elm/filter-rules sollte dann folgendes enthalten
if (sender ~ /linux-stammtisch/) then execute '/usr/bin/mail2news ml.linux.stammtisch' if (to ~ /linux-stammtisch/) then execute '/usr/bin/mail2news ml.linux.stammtisch' if (to "torsten") then leave
- Einrichten einer Newsgruppe ml.linux.stammtisch
Alle Anleitungen dazu gelten fuer INN, Cnews erfordert ein anderes Vorgehen. Eigentümer der Dateien ist user.news.
ctlinnd newgroup ml.linux.stammtisch m "local news-admin"
Und da die Gruppe moderated ist traegt man in die Datei moderators (normalerweise wohl /usr/lib/news/moderators oder so) noch das folgende einml.linux.stammtisch:linux-stammtisch@lists.infodrom.org
Achtung, wer Mails nach News gated sollte sicherstellen das davon nichts nach draußen geht. (Das kann ziemlich viel Ärger geben) Daher sollte bei den herausgehenden News sowas stehen wie bei meinem Eintrag für Infodrom Oldenburg :indrom/infodrom.north.de:!junk,!ml.*/!local:Tf,Wfb:
- Jetzt fehlt nur noch das Script das Mails in News umwandelt. (Meines ist
sicher verbesserungswürdig, ich verwerfe z.B. ganz viele Headerzeilen -
Achtung das ist nur okay wenn es lokal geschieht und der Artikel nicht
weitertransportiert wird) Das sollte die Rechte 755 kriegen und in
/usr/bin abgespeichert werden
/usr/bin/renice 20 -p $$>/dev/null 2>&1 /usr/bin/awk " BEGIN { print \"Path: imke.infodrom.north.de!not-for-mail\" print \"Newsgroups: $1\" print \"Organization: mail2news gateway at imke\" print \"Distribution: local\" print \"Sender: news@imke.infodrom.north.de\" print \"Approved: news@imke.infodrom.north.de\" subject=0 } NR==1,/^\$/ { test=tolower(\$1) if ( test==\"from:\" ) { print \$0 } if ( test==\"subject:\" ) { print \$0 ; subject=1 } if ( test==\"sender:\" ) { print \"X-orig-\"\$0 } if ( test==\"message-id:\" ) { print \$0 } if ( test==\"date:\" ) { print \$0 } } /^\$/,NR<0 { if ( subject==0 ) { print \"Subject: none\" ; subject = 1 } print \$0 }" | /usr/bin/rnews exit 0
- Jetzt können die Mails aus dieser Mailingliste ganz einfach mit einem
normalen Newsreader (z.B. tin) gelesen wesen. Die Artikel werden sogar
gethreaded das heißt das mensch auch bei großen Maillinglisten noch etwas
Überblick hat.
- Das Schreiben in die Mailingliste geschieht nun auch ganz einfach (darum ist die Gruppe ja moderated). Einen neuen Artikel schreibt mensch wie einen ganz normalen Newsartikel (Taste 'w' bei tin). Das Antworten geschieht dann entweder über ein Followup ('f' bei tin) wenn alle die Antwort kriegen sollen, oder man antwortet halt nur dem Autor per Mail (Taste 'm')
Anmerkungen
- Das Filter-Programm vom ELM wurde aufgrund vieler Sicherheitslücken aus der Debian-Distribution herausgenommen. Stattdessen sollte das viel flexiblere procmail verwendet werden.
- Inzwischen wurde das Programm Mutt entwickelt, das selbst Threading unterstützt.