close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

Changes between Initial Version and Version 1 of AdminMailverteiler


Ignore:
Timestamp:
Apr 10, 2015, 9:14:18 AM (12 years ago)
Author:
bau
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdminMailverteiler

    v1 v1  
     1= Mailverteuilersystem am Kepler-Gymnasium =
     2
     3== Vorbemerkungen ==
     4Auf dem Server kommt als Mailsystem Postfix/Cyrus zum Einsatz, die Musterlösung sieht als Listeninstrument die /etc/aliases vor und schreibt dort auch Maillisten für die Projekte hinein. Gleichzeitig kommt die Mailquota zum Einsatz, was zu unschönen Effekten führt, wenn ein Teilnehmer einer Liste seine Quota überschritten hat, dann nämlich zieht das System die Mail komplett zurück und packt sie in die mailq, somit wird die Mail beliebig oft nochmals an den GESAMTEN Verteiler gesendet.
     5
     6Seit April 2015 setzen wir für die Verteiler MAILMAN ein, damit wird die Mail an die Liste erst in einzelne Mail an jeden Listenteilnehmer zerlegt und dann erst an Postfix übergeben. Ist nun eine Quota überschritten, so kommt nur die eine Mail in die mailq und nicht mehr alle. Außerdem können Listen nun moderiert werden, was bei großen Listen wie alleschueler, allelehrer, etc dringend nötig ist. Nun können wirklich alle Menschen, die eine eMail-Adresse besitzen Mails an unsere Verteiler senden, da die Abesender erwartungsgemäß nicht in der Liste vorhanden sind, wird die Mail zuzrückgehalten und der Listenmoderator informiert. Erst nach Freischaltung durch den Moderator wird die Mail zugestellt.
     7
     8Die meisten unserer Listen sind für Mitglieder unmoderiert, so dass Listenmitglieder direkt an die Liste senden dürfen. Der jeweilige Listenadmin kann aber Mitglieder über das Webinterface auf moderiert setzen, falls diese sich danebenbenehmen.
     9
     10
     11== Technische Umsetzung ==
     12=== auf dem DB-Server ===
     13Über /etc/cron.daily wird das Script /usr/local/sbin/maintenance.php aufegrufen, welches diverse Pflegearbeiten an der InfoSys-Datenbank vornimmt und danach die Mailverteiler bearbeitet:
     14
     15* Erzeugt die Listen der Verteiler (Mailadressen, Namen, Moderatoren, acceptedNonMembers, moderiert?) aus der Datenbank
     16* Ruft die aktuell geltenden Mailverteiler vom paedml-Server aus der DB ab und
     17  * synct die bereits vorhandenen (Liste geht auf Status=U (Update)
     18    * haben sich die Moderatoren geändert?
     19    * haben sich die Mitglieder geändert?
     20      Liste erhält zusätzlich MStatus=-1 (Mitglieder syncen)
     21    * haben sich die akzeptierten Nicht-Listenmitglieder geändert
     22    * hat sich der moderiert-Status der Liste geändert?
     23      Liste erhält zusätzlich MStatus=1 (Mitglieder syncen und auf neuen Moderationsstatus setzen)
     24  * legt alle neuen Listen an (Liste wird in DB angelegt mit Status=N und MStatus=-1)
     25  * ermittelt zu löschende Listen (Liste erhält Status=D)
     26    Dazu werden alle nicht bereits bearbeiteten Listen abgearbeitet und bei den Listen vom Typ=A (auto) auf Status=D gesetzt (Listen mit Typ=D (dauer-auto) werden nicht bearbeitet)
     27
     28* kleinere Verteiler (klassenlehrer,klassensprecher,elternvertreter) werden auch weiterhin als Alias gehandelt und in die Datei /usr/local/sbin/aliases_db geschrieben
     29
     30* Script lädt die Datei aliases_db auf den paedml_Server nach /etc/aliases_db
     31* Script ruft auf dem paedml-Server das Script /var/lib/mailman/kepler/maintenance.sh auf
     32
     33
     34
     35=== auf dem paedml-Server
     36Das Script /var/lib/mailman/kepler/maintenance.sh wird täglich vom DB-Server aus aufgerufen und pflegt die Mailverteiler. Es ruft /var/www/interaktiv/kepler_login/emailverteiler.php --auto auf, dieses erzeugt /var/lib/mailman/kepler/update.sh, welches anschließend aufgerufen wird.
     37
     38/var/www/interaktiv/kepler_login/emailverteiler.php --auto macht folgendes (Aufruf ohne Argmente):
     39{{{
     40Erstellt die eMail-Verteiler fuer mailman neu, macht updates oder loescht sie
     41
     42Ausgewertet wird die lokale mySQL-Tabelle eMailVerteiler, in die das Script aber auch die paedml-Verteiler einliest, Ablauf
     43 * Script liest die Projekte ein (sophomorix-projekt) und gleicht die Verteiler in der DB an
     44 * eventuell gesetzte [A] oder [L] Merkmale werden geloescht, die Mailverteiler werden nicht mehr von sophomorix-mail verwaltet!
     45 * Abgleich der aktuell eingetragenen Mitglieder der Mailman-Listen mit jenen in der Datenbank * Loeschen aller Verteiler mit dem Status='D'
     46 * Updaten aller Konfigurationen bei Verteilern mit dem Status='U'
     47 * Neue Listen Anlegen (neu: Status='N')
     48 * Bemerkung: Listen mit Status=' ' werden nicht bearbeitet
     49 * Syncen der Mitglieder, wenn MStatus=-1 (oder bei --syncall fuer alle Verteiler)
     50 * Syncen der Mitglieder, wenn MStatus=1 dabei auch den Moderationsstatus veraendern
     51 * Fuer jede Liste werden zwei Dateien erzeugt:
     52   * [Liste].cfg:     enthaelt die Standard-Config (aus standard.cfg oder standard_update.cfg mit Anpassungen) - wird mit config_list verwendet
     53   * [Liste].members: enthaelt die Mitglieder der Liste - wird mit sync_members verwendet
     54 * Das Script erzeugt die Datei /var/lib/mailman/kepler/aliases_mailman - hier stehen alle Aliase fuer die /etc/aliases (postfix)
     55   und das update-Script /var/lib/mailman/kepler/update.sh - hier stehen nacheinander alle Mailman- und aliases-Kommandos
     56 * Das Script benutzt die Dateien
     57   * InfoMail.txt:        Enthaelt den Text der Mail, die an die Admins versendet wird
     58   * standard.cfg:        Enthaelt die Standard-Einstellungen fuer die anzulegenden Mailverteiler und fuer den Reset
     59   * standard_update.cfg: Enthaelt die Vorlage fuer die zu aendernden Einstellungen fuer das Update eines Mailverteilers
     60
     61Die Funktion des Scripts kann somit am Besten in der DB-Tabelle eMailVerteiler gesteuert werden (->Kepler-Login)
     62
     63
     64Benutzung nur mit folgenden Argumenten:
     65--auto:            legt neue Mailverteiler mit Standard-Einstellungen an, loescht nicht mehr benoetogte und fuegt die Mitglieder ein
     66  --syncall:       synct die Mitglieder aller Mailinglisten und nicht nur die, deren Merkmal MStatus=-1 ist
     67--getMembers [V]:  gibt die Mitglieder (eMailAdressen)eines Verteilers V zurueck
     68  --UserNames:     gibt statt der Mailadressen die Usernames zurueck (nur sinnvoll bei lokalen Adressen
     69--debug:           gibt mehr debugging-Infos (vor allem beim Erstellen der paedml-Projekt-Mailinglisten) aus
     70
     71
     72}}}
     73
     74
     75
     76