Fetchmail in UCS 3.1 und mehrere externe Accounts

mail
german

#1

Hallo!

Das in den UCS integrierte Fetchmail lässt in der WebGui ja nur 1 externen Account zum abholen von Mails pro User zu.
Um diese Einschränkung zu umgehen, habe ich die /etc/fetchmailrc manuell um zusätzliche externe Accounts erweitert.

Diese “verschwinden” aber nach einiger Zeit wieder aus der Konfig. Ich gehe davon aus, dass sie mit dem Template überschrieben wird, und nur die konfigurierten externen Accounts der User des UCS eingetragen werden.

Hat da schon jemand Erfahrung bzw. kann man dieses Verhalten ändern?

Servus,
WÖGER


#2

Hallo,

Es stimmt, die fetchmailrc wird aus dem LDAP neu generiert. Verantwortlich ist der Skript /usr/lib/univention-directory-listener/system/fetchmailrc.py . Der wird immer aufgerufen, wenn im Verzeichnis Änderungen an Nutzerobjekten gemacht werden, die sich auf das Abholen der Mails beziehen. Das ist aber nur die halbe Wahrheit. Für die Fetchmail-Integration sind am Nutzerobjekt die betreffenden Variablen (Host, Login, Passwort, TLS, keep etc.) als SINGLE-VALUE angelegt, und das läßt sich so einfach nicht ändern.

Wenn es sich nicht um viele Ausnahmen handelt, würde ich den Skript dahingehend abändern, daß er die Fetchmailrc aus den LDAP-Einträgen und einer von Hand gepflegten /etc/fetchmailrc.local zusammenfügt. Leider kennt die normale Syntax von fetchmailrc kein “Include” Statement, da wäre es noch einfacher.

viele Grüße
Frank Greif.


#3

Hallo!

Ja, ich kenne das Python-Script. Leider spreche ich kein Python um das Script dahingehend abzuändern, dass der Inhalt einer Datei (fetchmailrc.local) an die vom Script generierten Inhalt angehängt wird.
Soweite ich das Script verstehe generiert die Die Funktion objappend die Fetchmail-Zeilen für die Mailabholung (poll server with proto …). Dort müsste also der Inhalt von fethcmailrc.local ausgelesen und per flist.append hinzugefügt werden.

Diese Erweiterung sollte ja nicht zu aufwendig sein, aber wie gesagt sind mein Python Kenntnisse bescheiden bis nicht vorhanden.

Bleibt aber die Frage, ob und wann ein vom User angepasstes fetchmailrc.py wieder auf das Original von Univention zurückgesetzt wird. Vermutlich bei Errata-Updates oder neuen Releases des UCS.

Servus,
WÖGER


#4

Hallo,

[quote]Soweite ich das Script verstehe generiert die Die Funktion objappend die Fetchmail-Zeilen für die Mailabholung (poll server with proto …). Dort müsste also der Inhalt von fethcmailrc.local ausgelesen und per flist.append hinzugefügt werden.
[/quote]
Ich denke ganz so einfach ist es nicht, denn der Handler wird pro geänderten Nutzer-DN jeweils einmal gerufen. Und der Handler versucht dann, den bisherigen Inhalt der fetchmailrc durchzugehen und die Zeile zu finden, die betroffen ist, dann wird entweder angefügt (wenn nicht vorhanden) oder gelöscht und angefügt (wenn vorhanden) und fürs Löschen ist es noch anders. Man muß auf jeden Fall verhindern, daß der bisherige Algorithmus sich an den .local Einträgen vergreift, sowohl beim Suchen als auch beim Löschen und Einfügen. Am besten macht man das, indem man eine Kommentarzeile erfindet, die die .local Einträge vom Rest trennt, dann vor dem Algorithmus die .local Einträge abtrennt, den bisherigen Algorithmus durchlaufen läßt und am Ende die .local Einträge wieder hinzufügt.

Prinzipiell stimmt das, aber es ist trotzdem sehr unwahrscheinlich, denn selbst wenn z.B. Fetchmail ein Sicherheitsupdate bekommt, wird dies nicht unbedingt das Integrationspaket nachziehen müssen. Wenn man sich ganz und gar sicher sein will, kann man auch eine Diversion (dpkg-divert) einrichten, dann würde der veränderte Skript nie überschrieben und man hätte die Chance, eine per Paket aktualisierte Skriptdatei vorher anzuschauen und die Modifikationen wieder anzubringen.

viele Grüße
Frank Greif


#5

Gibt es hier mittlerweile Überlegungen den “Mailabruf von externen Servern” um mehrere Server zu erweitern?
Ich denke diese Funktion würde sehr sinnvoll sein, da auch ich vor dem gleichen Problem stehe.


#6

[quote=“Nordstern”]Gibt es hier mittlerweile Überlegungen den “Mailabruf von externen Servern” um mehrere Server zu erweitern?
Ich denke diese Funktion würde sehr sinnvoll sein, da auch ich vor dem gleichen Problem stehe.[/quote]
[bug]35420[/bug]
Querverweise zu diesem und einem anderen Thread habe ich gerade gelegt.