Artikel top billede

(Foto: Computerworld)

Byg et elektronisk posthus - del 4

I de foregående afsnit satte vi et velfungerende elektronisk posthus op. Nu skal vi til at oprette postlister, så vi kan skrive sammen med mere end én person ...

Af Kenneth Geisshirt, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

I de tre første afsnit i denne serie om elektronisk posthus har du installeret og konfigureret styresystemet Debian GNU/Linux sammen med Postfix og Dovecot.

Det er meget fint at skrive sammen med én person, men i nogle sammenhænge er det en hel gruppe, der skriver sammen. I den forbindelse er postlister et effektivt værktøj. Her i fjerde afsnit kommer du til at se, hvordan du elegant og effektivt kan oprette og styre postlister.

Mailman

Alle postprogrammer giver dig mulighed for at se en e-mail til mere end en person. Samtidig kan du vælge at ”svare alle”, det vil sige, sende dit svar til alle de e-mail-adresser, som er nævnt i den e-mail, du har modtaget. Så umiddelbart lyder det overflødigt at have et program til håndtering af postlister.

Der er to umiddelbare udfordringer ved at bruge dit postprogram til at sende til flere modtagere. For det første kommer du let til at glemme en eller anden person. Med fire-fem modtagere går det nok, men har din postliste 100 eller flere modtagere, er det fuldstændig umuligt at styre. Den anden udfordring er, at modtagerne skifter e-mail-adresse og glemmer at fortælle dig det.

Postlister kan bruges i mange sammenhænge. Det er oplagt at bruge for bestyrelsen i den forening, du er medlem af. I den situation er der ofte ikke mange modtagere, men fordelen er, at foreningens medlemmer kan sende bestyrelsen en besked på en fast adresse.

Bestyrelsen (og postlistens medlemmer) skiftes jo jævnligt ud, men adressen fortsætter med at eksistere. Du kan også bruge postlister til de forskellige afdelinger og arbejdsgrupper på dit arbejde. Som med en bestyrelse skiftes postlisternes medlemmer ud, når folk siger op, fyres eller skifter afdeling, og andre ansættes.

Mange open source-projekter bruger postlister til den daglige samtale om projektet. Her kender medlemmerne ikke altid hinanden, og i større projekter kan der være 100 eller flere medlemmer.

Programmet Mailman løser mange af disse udfordringer. Mailman er en del af GNU-projektet (det officielle navn er faktisk GNU Mailman, men GNU glemmes ofte), og du kan derfor være sikker på, at det er open source-software og distribueres med alle Linux-distributioner. Programmet går helt tilbage til forrige årtusinde (første version er fra 1999), og det betragtes som værende et meget stabilt og robust stykke software.

Mailman har mange fine faciliteter. Ud over at holde styr på postlister er det let at integrere med spam-filtre, så postlisterne ikke bruges til at udbrede spam. Hver post- liste har et web-interface – både til brugerne/medlemmerne og administratorerne. Sammen med Apache giver Mailman med andre ord en let adgang til postlisterne. Men der findes også en række kommandolinje-værktøjer til Mailman – det betyder, at Mailman-administratorer kan udføre krævende opgaver yderst effektivt.

Installation

I denne serie er styresystemet Debian GNU/Linux, da det er en robust og sikker Linux-dis-tribution. Der findes en pakke af Mailman til Debian GNU/Linux, og der går det let at installere programmet.

Kommandoen sudo apt-get install mailman installerer pakken. Under installationen bliver du spurgt om, hvilke sprog som din installation af Mailman skal understøtte. Sagen er nemlig den, at web-applikationen er oversat til en lang række sprog, og dine brugere frit kan vælge, hvilket sprog de ønsker. Skulle du finde ud af, at der er efterspørgsel på flere sprog, kan du med kommandoen sudo dpkg-reconfigure mailman vælge sprog igen.

Den første liste

Efter installationen af Mailman virker Mailman ikke. Det er ikke en fejl, idet Mailman kræver, at der findes en særlig postliste til programmer, for at det kan virke. Mailman bruger denne postliste til blandt andet at sende fejlbeskeder til Mailmans administratorer.

Det er lettest at oprette den første lis-te med kommandoen newlist – generelt er det den hurtigste vej. Kommandoen skal vide navnet på listen, så den første liste oprettes med kommandoen sudo newlist mailman. Du vil blive spurgt om e-mail-adressen på postlistens administrator.

Endvidere skal du angive et administrator-kodeord. Mailman vil sende en e-mail til den valgte adresse. Men kommandoen giver også en masse output – du kan se et eksempel i boksen Første liste. Alle disse linjer skal kopieres ind i Postfix’ alias-fil. En alias-fil fortæller, hvordan Postfix skal behandle forskellige adresser.

Mailman har forskellige adresser til forskellige operationer, for eksempel vil en e-mail til foobar-unsubscribe@aod.dk afmelde dig listen foobar hos aod.dk. Før kolon (:) ser du adressen, efter kolon finder du kommandolinjen, som Postfix skal udgøre (citationstegnene er derfor vigtige for, at Postfix kan se, hvor kommandolinjen begynder og slutter).

Din alias-fil finder du som /etc/aliases. Du skal i slutningen af filen tilføje de linjer, som newlist har givet dig. Derefter skal Postfix opdateres med kommandoerne sudo postalias /etc/aliases og sudo postfix reload. Endelig er du klar til at starte Mailman op med kommandoen sudo /etc/init.d/mailman start.

De næste lister

Proceduren for oprettelse af de næste lister er som oprettelse af den første. Men der er et alternativ, som gør det lettere at arbejde med Mailman i længden.

Du skal begynde med at ændre i filen /etc/mailman/mm_cfg.py. Et sted i denne fil kan du skrive MTA=’Postfix’. Linjen findes udkommenteret, det vil sige med en havelåge (#) foran. Efter denne rettelse skal du tilføje hash:/var/lib/mailman/data/aliases til linjen alias_maps i filen /etc/postfix/main.cf.

For at disse konfigurationsfiler kommer i spil, skal du genstarte Mailman (sudo /etc/init.d/mailman restart) og Postfix (sudo /etc/init.d/postfix restart).

Bruger du de to ovenstående ændringer, kan du oprette nye postlister med kommandoen newlist, og du behøver ikke at tilføje noget til alias-filen. Som en krølle på newlist kan du angive et domæne, som den skal køre under. Det er med andre ord muligt at få newlist til at styre de virtuelle domæner, som du modtager og afsender post for.

Web-delen

Som allerede nævnt har Mailman en web-applikation, som både administratorer, moderatorer og listemedlemmer kan bruge. Allerede i første afsnit i denne serie installerede du en webserver, nemlig Apache. Grunden var, at VBox.Adm har en web-applikation (teknisk set et CGI-script skrevet i Perl).

Da VBox.Adm er installeret, overstyrer programmet, hvor CGI-scripts er placeret. Det er let at fikse: Du skifter folder til /var/lib/vboxadm/cgi-bin og udfører kommandoen sudo ln -s /usr/lib/cgi-bin/mailman mailman. Har du en større installation med mange websites, bør du nok overveje, om dette er den rigtige løsning. Men for et posthus hjemme kan du roligt bruge denne løsning.

Administration af liste

Med denne lille fikse løsning på plads kan du pege din web-browser mod Mailman. Hedder din server posthus.aod.dk, finder du Mailmans administrative værktøjer på http://posthus.aod.dk/cgi-bin/mailman/admin.

Du kan vælge, hvilken postliste du ønsker at administrere. Log-in er ikke krævende, idet det kun kræver, at du kender listens administrative kodeord. Øverst finder du en række sektioner, idet Mailmans mange indstillinger er grupperet. Under generelle indstillinger finder du en liste af listens ejere (eller administratorer).

Hvis en postliste skal kunne administreres af mere end en person, skal du blot skrive alle adresserne adskilt af et linjeskift. På samme måde kan du tilføje moderatorer til en postlis-te – at der altså kan være forskel på moderatorer og administratorer.

Der er mange indstillinger af, hvordan beskeder filtreres, det vil sige, hvordan de ender med at blive sendt til godkendelse hos moderatoren. I standardopsætningen af en postliste vil kun medlemmer kunne sende til postlisten uden at blive stoppet.

Det er også muligt at sætte begrænsninger på, hvor store e-mails man vil tillade. For en ny liste er grænsen lav, og bruger du en postliste til at sende billeder eller store dokumenter, er det nok en god ide at skrue op for størrelsen.

Det er muligt for en administrator at tilmelde og afmelde folk postlisten. Det viser sig i mange foreninger og lignende, at mange personer finder det svært at tilmelde sig selv en postliste. Som administrator kommer du let til at være nødt til at tilmelde dem, hvis du gerne vil have dem på listen. Skifter et medlem adresse (eller en adresse holder op med at virke), vil Mailman finde ud af det og give administrator besked.

Ud over web-applikationen findes der en række kommandoer, som kan bruges til administration af Mailman. Du har allerede skiftet bekendtskab med newlist, men i boksen Nyttige kommandoer finder du en række andre.

Arkiv

Mailman giver også mulighed for at arkivere alle beskeder. På den måde kan medlemmerne finde gamle e-mails frem og genlæse dem. Det kan især være praktisk, når man bliver medlem af en gammel liste og gerne vil læse, hvad der tidligere har været skrevet om.

Et arkiv kan læses offentligt, hvilket betyder, at ikke-medlemmer kan bladre i arkivet. Du skal være helt sikker på, at du ønsker at have et offentligt arkiv, for der går ikke længe, før de store søgemaskiner (Google, Bing og så videre) har taget en kopi.

Men driver du et open source-projekt (eller noget andet med stor åbenhed indbygget), er et offentligt arkiv en temmelig god ide, da du og de andre medlemmer slipper for at gentage svar på tidligere stillede spørgsmål.

De offentlige arkiver kræver en mindre ændring af Apaches opsætning. I filen /etc/apache2/sites-available/default finder du opsætningen af det website, som kører på dit posthus.

Her skal du indsætte linjen Alias /pipermail/ /var/lib/mailman/archives/public/ og genstarte Apache med sudo /etc/init.d/apache2 restart. Hver e-mail sendt ud af Mailman vil indeholde et link til den tilhørende postlistes arkiv. Den første liste (mailman) får url’en http://posthus.aod.dk/pipermail/mailman/, hvis serveren hedder posthus.aod.dk.

Opgradering af Debian-pakke

Både Debian GNU/Linux og Mailman er meget modne, og opdateringer til Mailman sker sjældent. Når det sker, kommer der hurtigt en ny pakke til Debian GNU/Linux. Med en opgradering i stil med sudo apt-get dist-upgrade vil du opleve, at det ikke er muligt at få opgraderet Mailman.

Grunden er, at Mailman kan have beskeder liggende og venter på at sende dem ud. Og så længe Mailman har det, er det ikke sådan at opgradere. Heldigvis findes der et uortodoks trick, som mange systemadministratorer anvender.

Inden selve opgraderingen begynder, skal du lukke Mailman ned med kommandoen sudo /etc/init.d/mailman stop. Du kan nu flytte den folder, som typisk driller. Det gør du med kommandoerne cd /var/lib/mailman og sudo mv qfiles qfiles.tmp. Du kan nu udføre din opgradering og slutte af med at flytte folderen tilbage med sudo mv qfiles.tmp qfiles og starte Mailman med sudo /etc/init.d/mailman start.

Medlem

Det er meget fint at have postlister, men de skal gerne have medlemmer, før det bliver rigtig sjovt. Som administrator kan du tilføje medlemmer til listerne, men det er også muligt for medlemmerne selv at tilmelde sig.

Har du oprettet listen blad-snak på serveren posthus.aod.dk, er det muligt at tilmelde sig på http://posthus.aod.dk/cgi-bin/mailman/listinfo/blad-snak. Udelader du lis-tens navn, får du en oversigt over postlister på serveren. For at tilmelde sig skal en person blot skrive sin e-mail-adresse i feltet. Det er muligt at give flere oplysninger, men det er ikke nødvendigt.

Næste gang

Med Postfix, Dovecot, spam/virus-styring samt postlister på plads har du et velfungerende posthus. Dine brugere kan sende og modtage post. Men sagen er, at dine brugere rejser rundt og har ikke altid deres computer med på rejsen.

Web-mail er løsningen på den problematik. Egentlig er web-mail et postprogram skrevet som en web-applikation. Der findes mange web-mail-applikationer, som frigives under en open source-licens. I næste – og sidste afsnit – skal du give dine berejste brugere mulighed for at læse post ved hjælp af web-mailprogrammet Round Cube.

[themepacific_accordion]
[themepacific_accordion_section title="Fakta"]

Nyttige kommandoer

[/themepacific_accordion_section]
[themepacific_accordion_section title="Fakta"]

Første liste

[/themepacific_accordion_section]
[/themepacific_accordion]