FAQ:Arktur4/LDAP als Thunderbird-Adressbuch

Aus Delixs
Zur Navigation springen Zur Suche springen


Baustelle Archiv: Dieser Artikel beschreibt nicht die Funktionalität des derzeit aktuellen delixs-Servers. Er beschreibt ältere Schulserver-Funktionen und dient dem Zweck der Archivierung.


Adressbuch direkt im LDAP

Frage:

Wie kann ich die Daten aus dem LDAP als Adressbuch für Thunderbird nutzen?


Antwort:

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.



zurück | Hauptseite