FAQ:Arktur4/LDAP als Thunderbird-Adressbuch
Aus Arktur
Inhaltsverzeichnis |
Allgemeines
In Thunderbird V2.0.0.6 kann der LDAP als Adressbuch verwendet werden, so dass die anderen „Arkturianer“ nicht von Hand ins eigene Adressbuch eingegeben werden müssen. Diese Notizen fassen Ideen von Harry Jede, Thorsten Strusch, Hans-Dietrich Kirmse und Uwe Schoffer zusammen.
Einstellungen in Thunderbird
Thunderbird - Einstellungen
- Extras – Einstellungen – Verfassen – Adressieren
- LDAP-Verzeichnisserver = ja
- Bearbeiten – Hinzufügen
Thunderbird - Konten
- Extras – Konten – user@..... – Verfassen&Adressieren – Adressieren
- Einen anderen LDAP-Verzeichnisserver verwenden = Arktur-LDAP auswählen
- Thunderbird neu starten.
Ergänzungen auf Arktur
Thunderbird überträgt bis jetzt nur leere Textfelder, da die entsprechenden Felder im LDAP noch leer sind. Am einfachsten lässt sich das mit folgendem Skript korrigieren.
#!/usr/bin/perl -w use strict; use Net::LDAP; my ($ldap, $ldap_base, $pass, $entry, $value, $domain, $mesg, $temp, $mailadress); # wir holen uns die Such-Basis ($ldap_base) aus der ldap.conf open DATEI, '<', '/etc/ldap.conf' or die "konnte ldap.conf nicht oeffnen, $!\n"; while (my $zeile = <DATEI>) { if ($zeile =~ m/^\s*base\s+(\w.*\w)\s*$/) { $ldap_base = $1; last; } } close DATEI; # da wir die Mail-Adresse in den LDAP schreiben, brauchen wir noch das Passwort open DATEI, '<', '/etc/ldap.secret' or die "konnte ldap.secret nicht oeffnen, $!\n"; $pass = <DATEI>; chomp($pass); close DATEI; # wir verbinden uns mit dem LDAP $ldap = Net::LDAP->new('127.0.0.1', version => 3) or die "$@"; $ldap->bind( dn => "cn=admin, $ldap_base", password => $pass) or die "konnte mich nicht mit dem Server verbinden"; # wir holen uns den Domainname aus 'dhcpOption' von 'cn=DHCP Service Config' $mesg = $ldap->search(base => "cn=DHCP Service Config,o=DHCP, $ldap_base", filter => "dhcpOption=*", attrs => "dhcpOption", scope => "base" ); $entry = $mesg->shift_entry; $value = $entry->get_value( "dhcpOption" ); ($domain) = $value =~ /^\s*domain-name\s*"([^"]*)"$/; # wir holen uns von den Usern die uid (= Login) und den Eintrag für 'mail' $mesg = $ldap->search(base => "o=SCHULE, $ldap_base", filter => "(|(gidNumber=101)(gidNumber=102))", attrs => ['uid', 'mail'] ); $mesg->code and die $mesg->error; # wenn Value fuer 'mail' nicht vorhanden, dann erstellen und in LDAP schieben foreach my $entry ($mesg->entries) { $temp = $entry->get_value('mail'); if ( !defined( $temp ) or $temp eq "") { $mailadress = $entry->get_value('uid') . '@' . $domain; $ldap->modify( $entry->dn, add => { mail => $mailadress } ); } } # wir trennen uns vom LDAP $ldap->unbind;
- Auf dem T:-Laufwerk Datei erstellen und mit UNIX-Umbrüchen abspeichern.
- Als root auf der Konsole z.B. nach /root/tools/ldap verschieben und Rechte ggf. anpassen
chown root:root /root/tools/ldap/email-in-ldap chmod 750 /root/tools/ldap/email-in-ldap
- Ein Mal von Hand starten, dann sind alle aktuellen User verfügbar
- Damit zukünftige User ebenfalls verfügbar sind, ggf. regelmäßige Ausführung per crontab einrichten.
crontab –u root –e 30 8,13 * * * /root/tools/ldap/email-in-ldap > /dev/null
- Um den Vorschlag mit job.TAG.mailaddress umzusetzen, kenne ich mich zu wenig aus.
Nutzungshinweise
- Falls das Kontaktefenster nicht sichtbar ist, über Ansicht – Kontakte-Sidebar einblenden
- Adressbuch = Arktur-LDAP
- Bei Suche nach muss „* *“ (Stern Leerzeichen Stern, ohne Anführungszeichen) eingegeben werden, damit alle Namen aufgelistet werden.
- Per Drag-And-Drop oder über die „>> AN“- und „>>CC“-Buttons in das Adressfeld übertragen.