http://www.cuci.nl/~pscheele/ACorner

Majordomo
Ab Steeman
12 november 1999
Majordomo

Een RiscOS Maillist server
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 zogenaamde '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, stiekem 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 berichtenstromen. Enerzijds de berichtenstroom 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 helpbestand 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 massaverzending (denk aan email aan familie of iets dergelijks) of hij verzorgt ook een of meer mailinglijsten 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>, verstuurt 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 e-mailadres) 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.

</lijstnaam></lijstnaam></lijstnaam></lijstnaam></lijstnaam></lijstnaam>

Hiernaast staat het - toch best wel simpele - configuratiebestand, 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 elke bericht naar de robot naar 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 (bijvoorneeld 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.

Hieronder 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

de naam van de lijst,

de plaats waar het bestand met de abonnees zich bevindt,

welk tekstbestand er moet worden verstuurd op het commando info voor deze lijst,

welk tekstbestand naar nieuwe abonnees gestuurd wordt,

welk bestand er aan ieder bericht van de lijst moet worden toegevoegd,

of ja dan nee de lijst van abonnees wordt verspreid na ontvangst van het who commando,

of ja dan nee een uniforme Reply-To regel aan de headers wordt toegevoegd,

of ja dan nee informatie over het opzeggen van een abonnement onder aan de lijst wordt toegevoegd,

waar moet een kopie van elk bericht bewaard worden?

wordt er een header toegevoegd met de naam van de lijst erin? (Nuttig voor filteren bij ontvangst)

mogen alleen abonnees berichten plaatsen?

mogen alleen abonnees bestanden opvragen?

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 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 op 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 tweetalig 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 mailinglijsten die door Riscy Site Venlo worden verzorgd?
Een simpel e-mailtje aan lister@riscysite.demon.nl met als tekst: help volstaat al.
Je krijgt dan de gebruiksaanwijzing retour en kunt daarvandaan alle kanten op!

Succes,

Ab