Skip navigation

Linux User Group Oldenburg [Tux]

Ein Mail-to-News Gateway

Von Torsten Neumann

Um 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 :

  1. In die Datei ~/.forward einen Eintrag
      "|/usr/bin/filter -vo /home/torsten/.elm/filter-errs"
      
  2. 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
      
  3. 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 ein
        ml.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:
      
  4. 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
    
  5. 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.

  6. 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

  1. Das Filter-Programm vom ELM wurde aufgrund vieler Sicherheitslücken aus der Debian-Distribution herausgenommen. Stattdessen sollte das viel flexiblere procmail verwendet werden.
  2. Inzwischen wurde das Programm Mutt entwickelt, das selbst Threading unterstützt.