Benutzer-Werkzeuge

Webseiten-Werkzeuge


Writing /srv/www/htdocs/udo/singollo.de/linux.singollo.de/public_html/data/cache/6/6cdfedbac391ea1e92a9cbfd1390bc6d.metadata failed
mail:verteiler_mit_ldap

Postfix und Verteilerlisten mittels LDAP

Neulich wollte ich meine Verteilerlisten in KMail/Kontact auf meinen Verzeichnisdienst speichern, damit ich sie zentral für verschiedene Mailprogramme im Adressbuch einbinden kann, sowie es Microsoft mit AD im Outlook unterstützt. Ich fand aber irgendwie keine Lösung, diese Listen in KMail zu editieren und im Verzeichnisdienst zu hinterlegen. Bei der Suche nach irgendeinem Hinweis dazu, bin ich auf die Lösung mit Postfix und LDAP gekommen.

Ansatz

In den verschiedenen Schemata befinden sich unterschiedliche, oftmals gar nicht verwendete Attribute. Warum also nicht eines zweckentfremden und den Inhalt zum Mailverteiler zu machen? Ich verwende das Attribut „mail“ für meine Mailadressen, also suchte ich was passendes wie „maildrop“ aus dem „mailserver.schema“. Mit der passenden Abfrage nach der Mailadresse des Verteilers und die Rückgabe der Daten aus „mail“ kann Postfix diese Aufgabe übernehmen.

search_base = dc=foo,dc=bar
version = 3
query_filter = (maildrop=%s)
server_host= 127.0.0.1
server_port= 389
bind= no
timeout= 60
scope= sub
result_attribute = mail

Was passiert da?

Postfix schaut im Verzeichnisdienst unter dem in „search_base“ definierten Baum nach allen Datensätzen mit dem Attribut „maildrop“, das die passende Mailadresse enthält. Als Antwort wird das Attribut „mail“ zurückgeben. Da Postfix auch SQL verwenden kann, würde man es vielleicht so schreiben:

SELECT mail FROM search_base WHERE maildrop=%s;

Wie gebe ich jetzt die Mailverteiler ein?

Für OpenLDAP typisch wäre jetzt ein passendes LDIF mit ldapadd oder ldapmodify zu nutzen, aber das ist eher unpraktisch. Mit einem Frontend wie phpLDAPadmin oder anderen LDAP-Browsern kann man das recht einfach erledigen. Allerdings kann man das nicht in jedem Fall den Usern eines Webservers zumuten. So muss eine passendere Lösung her.

Für Webseiten mit einem CMS oder ähnlichen System bietet sich doch ein LDAP-Modul an, das aus den Mitgliederlisten die passenden Daten ausliest und in dem Verzeichnisdienst speichert. Die meisten Scriptsprachen bieten Unterstützung für LDAP an.

In naher Zukunft werde ich ein entsprechendes LDAP-Modul innerhalb meines PHP-Projekts „phpBookWorm“ veröffentlichen, das für eine Mailadresse prüft, ob es dem Mailserver als Verteiler bekannt ist oder nicht. Das Modul gibt entweder ein „true“ für „gefunden“ oder „false“ für „nicht bekannt“ zurück. Damit kann dann ein Script entscheiden, ob es die Verteilerliste des Postfix-Servers nutzen kann oder diese aus seiner Datenbank aufbauen muss.

mail/verteiler_mit_ldap.txt · Zuletzt geändert: 07.10.2012 18:31 (Externe Bearbeitung)