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:
[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.
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 -+~-~>$","^-+_->$",trueDiese 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
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.
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.
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.