Filteren met ANT
waarin Ab Steeman nieuwe dingen uit de doeken doet

De vorige keer heb je kunnen zien hoe je met !Marcel lokale nieuwsgroepen kunt opzetten. Het zou natuurlijk erg leuk zijn, wanneer je nu ook nog in staat zou zijn om hier berichten naartoe te kunnen verwijzen. Hoe dat nu precies in zijn werk gaat wordt, tegelijk met nog wat andere filter-technieken, in het onderstaande artikel beschreven.

Ant's !Marcel is uitgerust met een uitermate krachtig - maar toch verbazend uitgebreid en eenvoudig te bedienen - filter-mechaniek. Dat betekent in de praktijk dat je in staat wordt gesteld om je post op diverse elementen te checken, hierdoor een keus makend uit het totale email-aanbod, en deze selectie een door jou bepaalde handeling te laten ondergaan. Die bepaalde handeling kan bijvoorbeeld zijn: weggooien, tot nieuwsgroep-artikel bombarderen of afleveren bij een op jouw systeem ingestelde gebruiker. Je kunt een selectie op deze manier dus ook laten opnemen in een van de door jou aangemaakte lokale nieuwsgroepen, waardoor 'mail' wordt omgezet naar 'news'.

Ik hoor meerdere mensen nu verbaasd zeggen: "Waarom zou ik in vredesnaam mijn email om gaan zetten naar nieuws?". Het antwoord is kort maar krachtig: omdat bij de meeste internetters lang niet alle email nog persoonsgerichte post is. Hoeveel internetters hebben zich ondertussen niet geabonneerd op een mailing lijst of ontvangen regelmatig een ezine-aflevering? Al dit soort email is persoon ongebonden, behoeft dus niet persé te worden beantwoord en dient in de meeste gevallen vaak meer als info en/of naslagwerk.

In deze gevallen is het bericht beter op zijn plaats als nieuws dan als email, zodat je brievenbus overzichtelijk blijft, waarbij dan als extraatje meteen nog 'ns kan worden geprofiteerd van het automatische opschoon-proces van nieuwsgroepen, waarbij de artikelen (het is immers geen email meer) automatisch na een door de gebruiker ingestelde tijd verwijderd kunnen worden. Reageren en antwoorden op deze berichten blijft natuurlijk te allen tijde mogelijk!

Aan de slag dus!
Het venster, hieronder afgebeeld, opent zich na een klik op 'Mail setup' in het configuratievenster en een klik op 'Mail aliases/filters' in het Mail Setup venster.

In dit venster kun je nieuwe filters gaan ontwerpen en bestaande filters kopiëren, wijzigen of verwijderen. De instellingen van een bestaand filter kun je zichtbaar maken door erop te dubbelklikken, waarna deze eventueel veranderd kunnen worden. Mocht bij jou dit venster maar voor de helft openen, dan moet je even 'Filter mail' aanvinken, waarna de filter instellingen zichtbaar worden. Zonder deze vink wordt je mail niet gefilterd, maar slechts doorgestuurd.

Of je een nieuw filter gaat aanmaken (klik op 'Add') of een bestaand filter gaat wijzigen (klik op 'Edit'), in dit venster zie je alle zaken die ingevuld moeten worden (of reeds ingevuld zijn) om een filter effectief te maken. Om te beginnen het veld 'Addressed to'. Hierin vul je de gebruikersnaam in, zoals in jouw systeem bekend, van diegene aan wie de email gericht is. Het veld eronder, 'Remailed to', gaat het doel bevatten waarnaar het uitgefilterde bericht moet worden doorgestuurd. Via het opklik-menu kan dit zijn:

  1. een 'Addres list' (een gebruiker uit je gebruikerslijst)
  2. een 'Addres file' (een email- adressen-bestand)
  3. een 'Local newsgroup' (kijk, daar zijn ze dan!)
  4. een 'Program' (zoals bijv. Majordomo uit een vorig artikel).

Keuze 1) Hiermee kun je met het opklik-menu van het veld eronder een keuze maken uit de bij jou ingestelde gebruikers, zodat berichten voor een bepaalde gebruiker - al dan niet na filtering - bij een andere gebruiker binnen komen.

Keuze 2) Hiermee kun je met het opklik-menu van het veld eronder een keuze maken uit de bij jou ingestelde gebruikers, zodat berichten voor een bepaalde gebruiker - al dan niet na filtering - bij een andere gebruiker binnen komen. Als je hiervoor een aparte gebruiker hebt aangemaakt (bijv. 'Familie'), hoef je de berichten niet noodzakelijkerwijs eerst nog te filteren. Dan kun je zelf berichten via je eigen 'Familie mailing lijst' sturen, door deze te adresseren aan"Familie@ gedeelte-van-je-email-adres-achter-het-apenstaartje". Als je dan ook nog 'Private remailing list' aanvinkt worden eventuele antwoorden hierop niet doorgestuurd, zodat alleen jij die mailing lijst kunt gebruiken.

Keuze 3) Deze optie deponeert het bericht zonder vorm van proces in de nieuwsgroep die je kiest uit het opklik-menu. Dit vereist uiteraard nadere uitfiltering, want anders komt elk emailtje, gericht aan de ingestelde gebruiker, in een nieuwsgroep terecht. En dat zal zeker je bedoeling niet zijn! Je zult dus absoluut de optie 'Filter mail' moeten hebben aangevinkt bij deze keuze en de filter-gegevens nauwkeurig hebben bepaald (zie verderop).

Keuze 4) Dit gebruik je waarschijnlijk alleen als je een mailing lijst programma, zoals bijv. Majordomo, hebt geïnstalleerd. Maar het zou ook kunnen dienen om van je post bijv. handtekeningen te strippen o.i.d.

Je zult daar dan wel een programma voor moeten hebben, die je mail behandelt en daarna aflevert bij de gewenste gebruiker. !Marcel stuurt de mail in dit geval alleen maar naar dat programma en kijkt er verder niet meer naar om. Het programma kan natuurlijk wèl de behandelde berichten terugzetten in de mail-input directory, waardoor !Marcel ze ten tweede male krijgt aangeboden en er weer filters op kunnen worden losgelaten. Maar dit alles zal voor de gemiddelde !Marcel- gebruiker wel wat te uitgebreid zijn. Vergeet niet om na het invullen van de gegevens op 'Set' te klikken, anders heb je nog niks. Een klik op 'Cancel' sluit het venster zonder iets aan je instellingen te hebben veranderd!

Nu het echte filterwerk
Tot nu toe hebben we ons alleen nog maar bekommerd om het bovenste gedeelte van het filter-venster. Het echte filter-werk gebeurt echter naar aanleiding van de instellingen in het onderste gedeelte. Het gedeelte dus, wat pas zichtbaar wordt na aanvinken van de optie 'Filter mail'. !Marcel filtert oftewel de headers van je berichten (niet de inhoud!), of de lengte van het totale email-bericht. Deze laatste mogelijkheid zul je weinig gebruiken, denk ik, want dat betekent dat het ontvangen van aangehechte bestanden al snel onmogelijk wordt, aangezien deze over het algemeen een behoorlijke grootte hebben. Je kunt hiermee natuurlijk wèl uitzonderlijk grote en daardoor onhandelbare - dus ongewenste - zendingen, direct naar de bitjeshemel verwijzen. Je hoeft alleen maar de maximale grootte in te typen en alles erboven wordt automatisch verwijderd als je tenminste de optie 'Delete message' ook nog aanklikt!

Belangrijker, want veel meer gebruikt, is het filteren van de headers. De meest voorkomende headers zijn reeds selekteerbaar in het opklik-menu, maar niets weerhoudt je ervan om zelf een header (bijv. 'X-Organiza- tion') in te typen. Je kunt in het leesvenster van je email alle headers zichtbaar maken door het intoetsen van Ctrl-H, zodat je de headernaam precies kunt aflezen. Na het bepalen van de header die onderzocht moet worden vul je achter 'Contain' in wat de zoektekst moet zijn.

Deze hoeft niet volledig te zijn en is ook niet hoofdletter-gevoelig, waardoor 'wildcards' overbodig worden en zelfs niet mogelijk zijn! Het intypen van een gedeelte van een email-adres volstaat reeds om elk bericht, waarbij dit gedeelte voorkomt in de door jou aangegeven header, te laten voldoen aan de filtervoorwaarden. Wees dus zo accuraat mogelijk!

Voor het selecteren van email die naar nieuwsgroepen moet worden gezet zijn meestal de headers 'Sender' en 'From' bepalend. Je hebt je immers geabonneerd op een ezine of mailing lijst en als resultaat daarvan reeds wat zendingen ontvangen. Aangezien dergelijke mailings vrijwel uitsluitend volkomen automatisch verwerkt worden is de afzender een vaststaand feit, welke niet zo snel gewijzigd zal worden. En anders staat er absoluut in een of andere header een steeds weer terugkerende vermelding van de naam van dit ezine of deze mailing lijst. Daarop kun dus uitstekend gefilterd worden.

Het al dan niet aanklikken van 'Do not' bepaalt of in de ingestelde header(s) moet worden gezocht naar de aanwezigheid van de zoektekst, of juist naar het ontbreken hiervan! En daarmee zijn, ogenschijnlijk!, de filtermogelijkheden uitgeput. Ogenschijnlijk ja. Want je kunt ook trapsgewijs filteren, door een universeel, met name benoemd, filter te installeren.

Daar gaan we het straks over hebben in 'Aanvullend handwerk'. Eerst nog even het onderhavige filter afmaken door aan te klikken wat er moet gebeuren als een email aan de filtervoorwaarden voldoet. Onder 'Then' staan de twee mogelijkheden:

a) verwerken zoals aangegeven in 'Remailed to' in het bovenste gedeelte van dit venster, en
b) bericht vernietigen onder het motto "Die zien we nooit meer terug!"

Onnodig om te zeggen dat je met de laatste mogelijkheid uitermate voorzichtig moet zijn. Er blijft werkelijk geen spoor meer over van een emailtje dat aan deze bewerking ten slachtoffer is gevallen. Maak zoveel filters aan als je nodig hebt en klik daarbij steeds op 'Set' om het nieuwe filter geldig te maken, sluit alle vensters en klik in het configuratie-venster op 'Save'. Vanaf nu zijn je nieuwe filters inderdaad werkzaam.

Aanvullend handwerk
Door die klik op 'Save' worden je filter-instellingen permanent opgeslagen in het bestand '!InetSuite.Internet.Files.Aliases'. Wanneer je dit bestand in je tekstverwerker (!StrongEd, !Zap of !Edit) laadt, zie je elk filter terug in een éénregelige definitie.

Het betreft hier een doodgewoon tekstbestand, dus kunnen we daarin ook doodgewoon wijzigingen aanbrengen. Als je goed weet waar je mee bezig bent tenminste!

Een verkeerde toevoeging of uitwissing kan !Marcel danig van de kook brengen. Pas dus op en maak altijd éérst een kopie van het origineel. Stel nu eens dat je een filter hebt aangemaakt, maar de -ogenschijnlijke! - beperking van slechts 1 zoektekst blijkt niet voldoende te zijn. Maak dan een vervolg-filter aan, waarbij je bij 'Addressed to' bijvoorbeeld "Filter2" invult (elke andere naam voldoet uiteraard ook), daarbij dezelfde aktie defenieërt als wat het eerste filter had (voor het gemak noemen we deze even "Filter1"), maar waarbij de header en/of zoektekst die je bij die eerste niet kwijt kon, nu alsnog vermeld wordt. De simpelste manier om dit te verwezenlijken is om Filter1 te kopiëren en de kopie daarna te benoemen als Filter2, waarna je de wijzigingen gaat aanbrengen. Save de hele boel weer op de bekende wijze, zodat ook dit filter (voorkomt in het voornoemde bestand 'Aliases'. Laad nu het bestand 'Aliases' opnieuw in je tekst-verwerker.

En nu komt het: Het gedeelte achter 'then forward' van Filter1 zet je nu achter 'then forward' van Filter2. Daarvoor in de plaats typ je achter het 'then forward' van Filter1: "Filter2". Dit betekent niets meer of minder dan dat Filter1 na gedane arbeid zijn resultaat aflevert aan Filter2, welke dan na zíjn eigen extra arbeid het resultaat aflevert aan de uiteindelijke bestemming. Save 'Aliases' en probeer het resultaat uit. Mocht je fouten hebben gemaakt, waardoor !Marcel komt te 'hangen', dan kun je met je backup van het originele exemplaar de boel weer repareren.
En opnieuw proberen natuurlijk...

Moeilijk? Lees het geheel dan nog 'ns rustig opnieuw door. Op deze wijze kun je e i n d e l o o s filteren, waardoor de ogenschijnlijke beperkingen volledig worden opgeheven. Degenen onder ons met een levendige fantasie kunnen zich dit wel voorstellen. Filters als subroutines! Ooit eerder van gehoord?

Lang leve Ant's Internet Suite!

Veel plezier toegewenst met je nieuwe kennis,
Ab Steeman