MDB2 og Mailman

MedlemsDB2 har et konsept om e-post-lister som brukere kan melde seg av og på i webfjeset. Listen over listene er tabellen lister. Det skjer rent teknisk når noen melder seg av eller på en liste, er at de legger seg til eller sletter seg i tabellen listemedlemskap i MDB2. Se MedlemsDB2DBStruktur.

E-post-listene til MDB2 administreres av Mailman. Vi kunne gjort det langt enklere, ved å bare sende ut e-post til alle e-post-adressene i databasen, men Mailman har fornuftig håndtering av bounces og litt annet snacks for listehåndtering.

Det vil si at vi må fortelle Mailman hvilke medlemmer som er meldt på hvilke lister. Dette skjer med Python-skriptet mdb2-sync-mailman, som kjøres fra cron.d på cassarossa. Skriptet tar for seg hvert medlemskap i MDB2 og lager, eventuelt sletter, en oppføring i Mailman. Det kjører en gang i minuttet.

Det kan være verdt å merke seg at en e-post-liste kan være skjult for brukeren (feltet skjult er satt til true i =lister=-tabellen), men man kan fremdeles tvangspåmelde brukere til den i SQL.

Listene i Mailman

MDB2-listene i Mailman har identisk oppsett. De eies av listmaster@samfundet.no og har satt forskjellige opsjoner etter hva som ble tenkt på som lurt. Alle innlegg på listen modereres. Det er ikke mulig å melde seg av eller på listen gjennom Mailman (dette kan altså utelukkende skje med syncronise_lists-skriptet).

Lage ny MDB2-liste

Gjør følgende:

  1. Lag listen i databasen: INSERT INTO lister (mailman_navn, navn, beskrivelse, skjult) VALUES ('listenavn', 'listenavn', 'Beskrivelse av listen', false); Feltene navn og mailman_navn trenger ikke være like.
  2. Lag Mailman-listen. Dette finnes et automagisert skript for: cassarossa:/home/cassarossa/itk/mdb2/mdb2/bin# ./add_list.pl listenavn Her er «listenavn» det du skrev i mailman_navn-feltet i SQL-en. add_list.pl dumper følgende:
## listenavn mailing list
listenavn:              "|/var/lib/mailman/mail/mailman post listenavn"
listenavn-admin:        "|/var/lib/mailman/mail/mailman admin listenavn"
listenavn-bounces:      "|/var/lib/mailman/mail/mailman bounces listenavn"
listenavn-confirm:      "|/var/lib/mailman/mail/mailman confirm listenavn"
listenavn-join:         "|/var/lib/mailman/mail/mailman join listenavn"
listenavn-leave:        "|/var/lib/mailman/mail/mailman leave listenavn"
listenavn-owner:        "|/var/lib/mailman/mail/mailman owner listenavn"
listenavn-request:      "|/var/lib/mailman/mail/mailman request listenavn"
listenavn-subscribe:    "|/var/lib/mailman/mail/mailman subscribe listenavn"
listenavn-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe listenavn"

Dette skal legges til i filen /etc/aliases.mailman. Ferdig!

Slette en MDB2-liste

For å slette en MDB2-liste, gjør du stort sett det motsatte av å lage den:

  1. Finn en SQL-prompt og start en transaksjon: BEGIN;
  2. Finn liste_id til listen du vil slette: SELECT liste_id FROM lister;
  3. Slett alle medlemskap til listen: DELETE FROM listemedlemskap WHERE liste_id *id*=
  4. Slett listen: DELETE FROM lister WHERE liste_id *id*=
  5. Dersom alt ser bra ut: COMMIT;
  6. Slett oppføringene i /etc/aliases.mailman.
  7. Kjør rmlist på cassarossa: cassarossa:~# rmmlist listenavn
  8. Si ifra til folk at du har slettet listen.

TODO: Skrive om litt mer om tvangspåmelding til f.eks. «kortet ditt utløper sånn og slik»-lister.

Synkronisering fra MDB2-grupper

Det er også mulig å synkronisere alle medlemmer av en MDB2-gruppe (og undergrupper) til en Mailman-liste. Dette gjøres ved å sette feltet gruppe_id i tabellen lister. Hvis dette feltet er satt vil ikke eventuelle oppføringer for denne lista i listemedlemskap legges til i lista.

Funkebilletter

Funker på huset får stundom tilbud om gratis billetter eller adgang til konserter. Derfor har vi en mailman-liste ved navn funkebilletter@samfundet.no som informerer om dette. For å kunne melde seg opp i og motta epost fra denne listen trenger man et gyldig oblat. Merk at det ikke er snakk om et medlemskapsoblat, men et gjengoblat. I denne sammenhengen er et oblat gyldig i syv måneder fra det er godkjent.

Alle oblattyper (gjengis, funk, pang, funkepang) gir mulighet til å melde seg opp i listen, men bare personer med funke- eller funkepangoblat blir automatisk oppmeldt. Automatisk avmelding av oblatløse personer gjøres av mdb2-sync-mailman nevnt ovenfor. Når avmeldte personer får seg et gyldig funke- eller funkepangoblat, blir de oppmeldt igjen.

Lenker: Start, medlemsdb2

Mail: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2017-09-09 19:58 | Revisjon: 6 (historie, blame) | Totalt: 1469 kB | Rediger