LDAP jako zdroj adres pro poštovního klienta

Většina poštovních klientů umí použít adresářový server jako zdroj pro získávání kontaktů. Protože používám Thunderbird a Mutt, uvedu zde jejich konfiguraci.

Thunderbird

Jako zdroj pro kontakty si přídáme LDAP následujícím postupem.

  • Pustíme Thunderbird a otevřeme adresář (Ctrl+2)
  • V adresáři zvolíme File->New->LDAP Directory…
    LDAP jako zdroj adres pro poštovního klienta
  • Vyplníme údaje potřebné pro připojení k LDAP serveru
    • Name: ldap.example.net
    • Hostname: ldap.example.net
    • Base DN: ou=people,dc=example,dc=net
    LDAP jako zdroj adres pro poštovního klienta
  • Na screenshotu je vyplněná ještě položka Bind DN. Tato položka umožní přihlášení k LDAPu pod konkrétním uživatelem. Využijete jí, pokud máte v LDAPu zakázán anonymní přístup. O heslo budete požádání při prvním přístupu do LDAPu.
  • Dále si zapneme automatické doplňování adres i pro LDAP
    • V Thunderbirdu zvolíme v menu Edit->Preferences
    • Na záložce Composition si zaškrtněte v sekci Address Autocompletion i položku Directory Server.
    LDAP jako zdroj adres pro poštovního klienta

Mutt

Mutt je jeden z nejpoužívanějších textových MUA v UNIXovém světě. I mutt umí spolupracovat s LDAPem při výběru adres během psaní nového emailu. Sice neumí s LDAPem spolupracovat nativně, ale přes pomocný skript, ale to nám přece nevadí :-). Na Internetu nalezenete různé skripty, jeden z nich sem dám jako příklad. Návod na rozchození je na začátku skriptu. Pokud se nemusíte k LDAPu přihlašovat jménem a heslem, nechte nastavení prázdné ($username = “”;, $password = “”;).

#! /usr/bin/perl -Tw
# 2005-02-24: Fixed for AD/Exchange 2003 & Unicode characters,
# anders@bsdconsulting.no If you find this script useful, let me know. :-)
#
# 2000/2001: Original version obtained from Andreas Plesner Jacobsen at
# World Online Denmark. Worked for me with Exchange versions prior to Exchange
# 2000.
#
# Use it with mutt by putting in your .muttrc:
# set query_command = "/home/user/bin/mutt-ldap.pl '%s'"
#
# Then you can search for your users by name directly from mutt. Press ^t
# after having typed parts of the name. Remember to edit configuration
# variables below.

use strict;
use Encode qw/encode decode/;
use vars qw { $ldapserver $domain $username $password $basedn };

# --- configuration ---
$ldapserver = "domaincontroller.yourdomain.com";
$domain = "YOURDOMAIN";
$username = "myuser";
$password = "mypassword";
$basedn = "ou=companyxy,dc=companyxy,dc=tld";
# --- end configuration ---

#my $search=shift;
my $search=encode("UTF-8", join(" ", @ARGV));

if (!$search=~/[\.\*\w\s]+/) {
  print("Invalid search parameters\n");
  exit 1;
}

use Net::LDAP;

my $ldap = Net::LDAP->new($ldapserver) or die "$@";

$ldap->bind("$domain\\$username", password=>$password);

my $mesg = $ldap->search (
  base => $basedn,
  filter => "(|(cn=*$search*) (rdn=*$search*) (uid=*$search*) (mail=*$search*))",
  attrs => ['mail','cn']
);

$mesg->code && die $mesg->error;

print(scalar($mesg->all_entries), " entries found\n");

foreach my $entry ($mesg->all_entries) {
  if ($entry->get_value('mail')) {
    print($entry->get_value('mail'),"\t",
      decode("UTF-8", $entry->get_value('cn')),"\tFrom Exchange LDAP database\n");
  }
}
$ldap->unbind;

Comments are closed.