ToDo: Kontrolle

FAQ - Konvertieren von Mailinglisten in Newsgruppen

Diese Konfiguration benutzt die Skriptsprache des Hamsters für den Abruf der Mails sowie Korrnews (Download siehe Linkliste) für zusätzliche Schritte. Die Mails für die Liste werden zuerst einmal in einen speziellen lokalen Mail-Account namens „Liste“ umgeleitet. Anschließend werden sie dort von Korrnews überarbeitet, wobei überflüssige Header gelöscht werden. Fehler von Egroups (die hier als Beispiel dienen und über die auch die Hamster-Mailinglisten laufen) werden korrigiert, und die Werbung entsorgt. Diese überarbeiteten Mails holt sich der Hamster wieder selber ab, wobei sie dann wirklich umgeleitet werden.

Aber nun geht es los:

  1. Lokalen Benutzer anlegen mit dem Namen „Liste“. Dieser Account darf von keinem Client gepollt werden.
  2. Folgende beide Abschnitte in der „Mailfilt.hst“ anlegen:
    [EGroups]
    # filter-rules for all mails fetched with identifier "EGroups"
    add(liste) Reply-To: "usehamsternet@"
    add(liste) Reply-To: "dafa-treff@"
    
    [EGListe]
    postto(hamster.de.usehamsternet) Reply-To: "usehamsternet@"
    postto(dafa.treff) Reply-To: "dafa-treff@"
    

    Wie man sieht, werden hier zwei Listen bezogen. Hier ist ganz besonders zu bemerken, dass in beiden Abschnitten die Filterkriterien identisch sind. Hier ist es jeweils das „Reply-To:“, das kann im konkreten Fall aber auch das „Subject:“ oder anderes sein. Natürlich empfiehlt es sich, einen Account nur für die Mailinglisten zu verwenden. Aber absolut notwendig ist das nicht.

    Übrigens setzt der Hamster in den Postings dabei automatisch das Headerfeld „FollowUp-To: poster“.

  3. Für Korrnews eine spezielle Datei erstellen, und als „EGroupsHeader.def“ speichern.
    Delete Header Received
    Delete Header Newsgroups
    Delete Header Return-Path
    Delete Header Delivered-To
    Delete Header X-eGroups-Return
    Delete Header X-Apparently-To
    Delete Header X-From_:
    Delete Header X-Hamster-To
    Delete Header Mailing-List
    Delete Header Precedence
    Delete Header List-Unsubscribe
    If not Header(X-eGroups-From) is Empty
      Set Header X-EG-From: %Header(From)%
      Set Header From: %Header(X-eGroups-From)%
      Delete Header X-eGroups-From
    endif
    If Header(References) is Empty and not Header(In-Reply-To) is Empty
      Set Header References: %Header(References)% %Header(In-Reply-To)%
    endif
    Delete between last "^-+ eGroups Sponsor -+~-~>$","^-+_->$",true
    
    Diese Angaben löschen eine Menge überflüssiger Header, zaubern, wenn nötig, den originalen „From:“-Header des Absenders wieder hervor, erzeugen References aus einem vorhandenen „In-Reply-To:“ und löschen abschließend die Werbung heraus.

    Dazu einen korrespondierenden Abschnitt „EGroups“ in Korrnews erstellen, der diese Datei verwendet. Außerdem den Speicherort für den Account „Liste“ in die „korrnews.ini“ eintragen:

    [EGroups]
    MessagePath=..\Mails\Liste
    Header.def=EGroupsHeader.def
    
  4. Im Skript mittels „HamFetchMail“ den externen E-Mail-Account abrufen, in dem die Beiträge der Mailingliste landen:
    hamfetchmail ( "pop-server.example.net", "pop3", "User", "Pass", "Liste", "EGroups" )
    

    Die Mails werden durch den obigen ersten Filter aus der „MailFilt.hst“ im Account „Liste“ abgelegt.

  5. Nach allen weiteren Aktionen kann die Verbindung zum Provider getrennt werden, der Rest läuft lokal ab.
    hamwaitidle
    Execute ("KorrNews\KorrNews.EXE EGroups", HamPath,0,true)
    

    Dieser Abschnitt wartet, bis Hamster zur Ruhe gekommen ist. Dadurch sind garantiert alle interessanten Mails getrennt im Account „Liste“ verfügbar. Die Verbesserungen werden vorgenommen, wie oben angegeben. Es fehlt nur noch der Import in die lokale NG.

  6. Der nächste Abschnitt erledigt das. Der Hamster ruft die Mails aus „Liste“ vom Mailserver ab, der er selber ist. Das läuft inzwischen unter „autoerotisch“ (denn: Er POPpt sich selbst.). Jetzt trifft das zweite Filterkriterium aus „MailFilt.hst“ zu, so dass die Mails importiert werden.
    hamwaitidle
    hamfetchmail ( "localhost", "pop3", "liste", "liste", "admin", "EGListe" )
    hamwaitidle
    

    Hier ist noch etwas verbesserungswürdig: „postto(…)“ beachtet die History nicht. Deshalb können Beiträge mehrfach erscheinen, wenn sie entsprechend oft abgerufen werden. Dort soll noch eine Anweisung hinein, die die einzelnen Dateien liest, und prüft, ob die MID schon in der History steht. Ist das der Fall, so soll die Datei gelöscht werden. Erst anschließend wird der Rest importiert.

    Vorteile: Falls wieder einmal ein allgemein zugänglicher Server so eine lokale Gruppe anbietet, so kann unbesorgt erst einmal von dort abgerufen werden. Die spezielle Maßnahme vermeidet dann Dubletten in der Gruppe. Es sei denn, die Mail wurde bei „EGroups“ ohne MID eingeliefert. Aber das wird immer unwahrscheinlicher, je mehr Leser direkt mit dem Newsreader antworten.

Ursprüngliche Version von Wilfried Kramer: http://soscha.de/hamster/#ML2NG), geändert durch Steffen Hoffmann