Majordomo, een Risc OS maillist server
uitgespit en beschreven door Ab Steeman

Een maand of wat geleden was ik bezig om de uitgebreidere mogelijkheden van !Marcel, Ant's mailer applicatie, 'ns rustig op mijn gemak uit te vogelen. Een van de zaken die ik - zeer beperkt - al eens toegepast had, was het opzetten van een paar adreslijsten, zodat een mailtje naar een zelf te bepalen naam als gevolg had dat iedereen op die adreslijst het bericht toegezonden kreeg. Een zgn 'privé- mailing lijst'. Dat werkte bijzonder goed.

Al doende had ik door bijvoorbeeld te schrijven naar 'ShareSoftList' een bericht voor het groepje liefhebbers - een stuk of vijf maar - die elkaar regelmatig van software voorzagen, in één keer de deur uit zonder steeds al die adressen te moeten intypen of aanklikken. Toen werd het een sport om er voor te zorgen dat iedereen op de lijst ook via dezelfde lijst aan elkaar kon schrijven. Net zoals een echte mailing lijst. En dat lukte wonderwel. !Marcel regelde dat prima. Op deze wijze ontstond - eveneens op zeer beperkte schaal - de 'AcornistenList', een mailing lijst voor Acorn gebruikers in Nederland. Ik was enthousiast en maakte daardoor de grote fout door ongevraagd personen aan de lijst toe te voegen, waarvan sommigen helemaal niet gediend waren.

Stom natuurlijk!
Maar een redelijk groot groepje bleef, na klachten en dus afschrijving van enkelen, toch nog over en de mailing lijst ging door. Al snel bleek dat Marcel niet alles doet wat bij het verzorgen van een lijst nodig is. Ik moest handmatig kop en staart aan de berichten toevoegen en de headers aanpassen, zodat antwoord op berichten ook weer de lijst opgingen en niet alleen naar de schrijver van het bericht werden gestuurd. Al met al toch nog knap veel werk en dus zeer tijdrovend!

Toen kwam de dag dat ik van een 'Acornist' de applikatie 'Majordomo' kreeg toegestuurd. Bij hem werkte het niet zo bijzonder, ik moest maar 'ns zien wat ik ervan maken kon. Vrij snel kwam ik erachter dat er niet zo veel fout zat en kreeg ik Majordomo aan de praat. Voortaan deed de mail list server het werk. En hoe! Het was nu plotseling mogelijk door middel van een emailtje te abonneren op of juist af te schrijven van alle lijsten die door de host (dat was ik dus) werden verzorgd. En dat allemaal door een applikatie die er niet eens uit ziet als een applikatie, maar als een gewone directory door het leven gaat, stiekum opgeborgen in InetSuite's Bin-directory.

Wat doet zo'n Majordomo nou precies?
Een majordomo (stomme naam overigens, ik heb geen idee waar dat vandaan komt) regelt in hoofdzaak twee berichten-stromen. Enerzijds de berichten-stroom naar de mailing lijsten die de host verzorgt, anderszijds moeten er commando's van de abonnees op de lijsten worden verwerkt.

Taak 1
Het verzorgen van de berichten naar de lijst. Alle berichten naar de lijst - als voorbeeld nemen we de 'AcornistenList' - worden door !Marcel naar de majordomo gestuurd. Daartoe werd in de Internet Suite een filter aangemaakt wat ervoor zorgt dat alle mail, gericht aan 'AcornistenList', doorgestuurd wordt naar Majordomo met als toevoeging '-m AcornistenList'.

Majordomo weet nu dat het een bericht voor een lijst betreft en ook nog wélke lijst. Hij voegt verschillende zaken aan het bericht toe, headers en een stukje info over het opzeggen van een abonnement en het aanvragen van een Help bestand, waarin alle mogelijke commando's naar de majordomo worden verklaard. Dan worden alle abonnees als ontvanger boven aan het bericht gezet en de hele zaak wordt tenslotte in InetSuite's queue geplaatst om te worden verzonden.

Taak 2
Het verwerken van commando's door abonnees. Alle berichten met een of meer commando's moeten naar een speciaal adres worden gestuurd. Meestal kiest de lijstbeheerder hiervoor de naam 'majordomo' of 'lister'. In InetSuite's Mail setup moet dus ook een filter worden gemaakt die de berichten aan 'lister' ook doorstuurt naar Majordomo, maar nu met de sleutel '-c' als toevoeging, zodat het programma weet dat dit bericht een of meer commando's van een abonnee betreft.

Er zijn heel veel mogelijke commando's. Meer dan je in eerste instantie zou kunnen bedenken. Om te beginnen natuurlijk het commando help, waarmee een abonnee te weten kan komen wat allemaal mogelijk is met de mailing robot. Zodra dit commando binnen komt verstuurt Majordomo het help-bestand naar de aanvrager, waarin alle mogelijkheden netjes op een rij staan. Ook lists is een commando. Na ontvangst daarvan stuurt Majordomo een lijstje met alle mailing lijsten die de host verzorgt en waarop iedereen zich kan abonneren.

Deze opsomming toont overigens alleen maar de openbare lijsten! Er kunnen best nog besloten lijsten bestaan, welke verborgen gehouden worden door de lijstbeheerder, de host dus, omdat hij deze lijsten privé als adreslijst heeft voor massa-verzending (denk aan email aan familie o.i.d.) of hij verzorgt ook een of meer mailing lijsten voor aparte groepen gebruikers. Dit zijn dan de 'hidden', de verborgen lijsten, die niet iedereen zomaar te zien krijgt.

Zo zijn er nog veel meer commando's:

info <lijstnaam>, verstuur informatie over de mailing lijst '<lijstnaam>'
who <lijstnaam>, laat zien wie er op '<lijstnaam>' is geabonneerd.

De lijstverzorger kan deze optie overigens hebben uitgeschakeld, omdat niet iedereen het prettig zal vinden om zijn abonnement (en email-adres) openbaar te weten. subscribe <lijstnaam> en unsubscribe <lijstnaam>, waarmee iedereen zich door middel van een simpel emailtje op een mailing lijst kan abonneren, of juist zijn abonnement op deze manier op kan zeggen.

Zo zijn er nog veel meer commando's die de majordomo uit kan voeren. Om dit perfect te kunnen doen zijn er natuurlijk wat configuraties nodig. Zowel wat betreft Majordomo alswel in de Internet Suite. Majordomo moet een paar zaakjes weten voordat hij zijn taak kan uitvoeren.

Hierna staat het - toch best wel simpele - configuratie bestand, waarin je bijvoorbeeld de host terug vindt, de naam waar commando's naar moeten worden gezonden, alsmede de persoon die optreedt als kontaktpersoon (een 'Marcel user'), waar de mailing robot naar kan verwijzen voor vragen en opmerkingen die de robot niet aan kan. Verder zie je een wachtwoord voor Majordomo, te gebruiken door de lijst beheerder, voor interne commando's en je ziet de 'Marcel user' waar een kopie van elk bericht naar de robot toe wordt gestuurd, waardoor de lijstbeheerder een kompleet overzicht behoudt over de gang van zaken. Wie zich in- danwel uitschrijft, wie informatie opvraagt, wie bestanden opvraagt (ja, ook dat kan!) enzovoort.

'Batch size' geeft aan hoe groot een adressenbestand maximaal mag zijn, voordat de robot besluit om de berichten in porties te versturen. In dit geval zal een bericht naar maximaal 100 abonnees worden verstuurd. Is de lijst met abonnees groter, dan wordt daarna het bericht naar de volgende 100 gestuurd, enzovoort. Bijna onderaan staan de directories waarin berichten moeten worden klaargezet voor verzending en waaruit ze moeten worden gehaald bij binnenkomst. En als laatste kun je ook nog opgeven welke headers van binnenkomende berichten verwijderd moeten worden, voordat ze worden doorgestuurd.

Verder staat er in dezelfde directory als waar dit configuratie bestand staat, een bestand waarin de te verzorgen mailing lijsten worden opgenoemd. En dat kunnen er heel wat zijn!

Ikzelf heb er in totaal acht! Er komt dus meer bij kijken dan je denkt! En dit was alleen nog maar de robot, Majordomo himself. Elke mailing lijst heeft een configuratie bestand voor zichzelf, zodat je per lijst apart bepaalde zaken kunt vastleggen.

De ene lijst heeft wel de mogelijkheid om bestanden op te vragen, bij een andere lijst is dit niet het geval, onnodig of misschien zelfs ongewenst. Dit alles uiteraard geheel ter beoordeling van de lijstbeheerder. Bij de ene lijst vind je het niet erg als mensen kunnen opvragen wie er ook op de lijst is geabonneerd (bijvoorbeeld een familie mailing lijst), bij de andere lijst is het gewoon een schending van privacy wanneer iedereen dit kan opvragen. Dus dat wordt allemaal per lijst apart in een configuratie bestand geregeld.

staat zo'n configuratie bestand, een beetje uitvoeriger dan de configuratie van de robot, zoals je ziet! Er worden nogal wat verschillende dingen in benoemd, zoals:

Je kunt per lijst apart een wachtwoord vastleggen, waarmee de lijstbeheerder bepaalde zaken kan opvragen, welke tegen de configuratie indruisen, zoals bijvoorbeeld met who tóch een lijst van abonnees produceren. Verder zitten er per lijst nog verschillende tekstbestanden in een directory, die van lijst tot lijst kunnen varieren. Majordomo kent voor zichzelf een Responses-directory, waarin alle tekstbestanden staan die door de applikatie kunnen worden verzonden, als reactie op een aanvraag van een abonnee, of als reactie op een aan- of aanmelding, of een eventueel verkeerd of incompleet commando.
Voordat je dit allemaal naar je eigen zin hebt ingericht zijn er écht wel wat winterse werkavondjes verstreken...

Waar moet ik nu in vredesnaam mee beginnen?

Je wilt het zelf ook wel eens opzetten? En je wilt weten wat er allemaal bij komt kijken? Perfect! Daar gaan we. Om te beginnen heb je Majordomo nodig. Hard nodig, want alles met het handje doen is echt niets waard. Majordomo is te downloaden van het Internet op het volgende adres: http://www.beard.demon.co.uk, de homepage van de schrijver ervan, Peter Gaunt. Je kunt je ook abonneren op de ShareSoft Mailing Lijst door een emailtje te sturen aan lister@riscysite.demon.nl , met als tekst: subscribe ShareSoftList end

Daarna stuur je een email naar hetzelfde adres met als tekst: get ShareSoftList Internet/Major045g end en je krijgt Majordomo netjes thuis gestuurd als UUencoded tekstbestand, waarmee SparkFS wel raad weet. Het bestand bevat de applikatie !MailLists en de directory majordomo. !MailLists wordt in dezelfde directory geplaatst als waar !InetSuite in staat. Majordomo kopieer je naar de directory !InetSuite.Internet.Bin

!MailLists is de verzamelplaats voor (al) je mailing lijsten en die moet je natuurlijk stuk voor stuk nog configureren, maar vooral ook van abonnees voorzien! Niet zoals ik deed door stomweg maar mensen in een lijstje te zetten, want daar krijg je problemen mee (net als ik heb gehad!). Je kunt je mailinglijst eventueel aanmelden op het Internet in de nieuwsgroepen die verwant zijn met de aard van je mailing lijst, of aanmelden in je eigen trouwe Asterisk, of gewoon mond tot mond reclame maken, je ziet maar! Maar zonder abonnees geen lijst, dat is duidelijk. Je kunt ook gewoon een familie lijst opzetten, eerst alleen voor centrale nieuws verzending, later kan men er ook in gaan schrijven. De mogelijkheden zijn legio.

Majordomo moet natuurlijk ook eerst worden geconfigureerd. Dit artikel heeft je daarin al 'n beetje thuis gemaakt, maar de bijgeleverde Help zal je alles kunnen vertellen wat je verder nog weten wilt. En dan moet !InetSuite er nog voor worden klaargemaakt. Daartoe ga je een nieuwe user aanmaken, ListMgr of zoiets, welke een kopie gaat ontvangen van alles wat Majordomo, je mailing robot, aan commando's van je abonnees ontvangt. Verder moeten er nog twee filters worden opgezet in de Mail setup, zoals aan het begin van dit stukje beschreven.

Het eerste filter bepaalt waarheen de berichten aan je mailing lijst naartoe gaan. (Naar Majordomo dus, met -m sleutel en lijstnaam toevoeging). Een tweede filter bepaalt waar berichten aan de robot naartoe gaan. (Ook naar Majordomo, maar met de -c sleutel, zonder toevoeging).

Dit is dan de grond-opzet van het geheel. Ik heb het zelf wat ingewikkelder gedaan, omdat ik wilde dat mijn Majordomo twee-talig is. De Nederlandse lijsten werken met majordomo-berichten in de Nederlandse taal, terwijl alles op de InternetBBS lijst in het Engels gaat. Dat was een heel gepuzzel, dat zal ik je wel vertellen, maar de schrijver van Majordomo is op de hoogte en binnenkort komt er waarschijnlijk een nieuwe versie uit die dit probleem intern oplost. Ik heb regelmatig contact met Peter, en hij staat volledig open voor suggesties van Majordomo gebruikers. Majordomo behoort dus gelukkig bij de weinige applikaties die constant door ontwikkeld worden, ook al is de Acorn wereld onzeker over de toekomst.

Tot slot nog een heel belangrijk ding:

Naar mijn ervaring is een account bij Demon Internet onontbeerlijk, omdat alleen daar de mogelijkheid bestaat tot het gebruik van een oneindig aantal email adressen. En die heb je uiteraard wel nodig als lijstbeheerder! Per mailing lijst een eigen adres (zoals 'acornistenlist@riscysite.demon.nl') plus nog een Lijstbeheerder en een LijstManager! Ga er maar aan staan wanneer je niet de mogelijkheid tot het vaststellen van je eigen email adres hebt.. Wil je meer weten over de maiiling lijsten die door Riscy Site Venlo worden verzorgd? Een simpel emailtje aan lister@riscysite.demon.nl met als tekst: help volstaat al. Je krijgt dan de gebruiksaanwijzing retour en kunt daarvandaan alle kanten op!