Mutt LDAP-Query: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: ja, man kann LDAP richtig schön in Mutt integrieren. Dazu das folgende Skript (basiert auf dem von [http://www.perlmonks.org/?node_id=222066]) irgendwo als mutt_query...)
 
 
Zeile 19: Zeile 19:
 
     print "Searching directory... ";
 
     print "Searching directory... ";
 
     $name = shift || die "Usage: $0 filter\n";
 
     $name = shift || die "Usage: $0 filter\n";
     my $filter = "(|(sn=$name*)(givenName=$name*))";
+
     my $filter = "(|(sn=*$name*)(givenName=*$name*)(mail=*$name*))";
 
     my $ldap = Net::LDAP->new( HOST, onerror => 'die' )
 
     my $ldap = Net::LDAP->new( HOST, onerror => 'die' )
 
             || die "Cannot connect: $@";
 
             || die "Cannot connect: $@";

Aktuelle Version vom 16. Mai 2009, 15:28 Uhr

ja, man kann LDAP richtig schön in Mutt integrieren. Dazu das folgende Skript (basiert auf dem von [1]) irgendwo als mutt_query ablegen:

#!/usr/bin/perl

use strict;
use Net::LDAP;

use constant HOST => 'domina.zerties.org';
use constant BASE => 'dc=zerties,dc=org';
use constant USERNAME => 'cn=Stefan Siegl,ou=Zerties,ou=People,dc=zerties,dc=org';
use constant PASSWORD => 'xxxxxxxx';
use constant VERSION => 3;
use constant SCOPE => 'sub';

my $name;
my @attributes = qw( dn givenName sn mail );
{
    print "Searching directory... ";
    $name = shift || die "Usage: $0 filter\n";
    my $filter = "(|(sn=*$name*)(givenName=*$name*)(mail=*$name*))";
    my $ldap = Net::LDAP->new( HOST, onerror => 'die' )
            || die "Cannot connect: $@";

    $ldap->bind( USERNAME,
    version => VERSION, password => PASSWORD ) or die "Cannot bind: $@";

    my $result = $ldap->search( base => BASE,
                            scope => SCOPE,
                            attrs => \@attributes,
                            filter => $filter
                            );

    my @entries = $result->entries;

    $ldap->unbind();

    print scalar @entries, " entries found.\n";

    foreach my $entry ( @entries ) {
        my @emailAddr = $entry->get_value('mail');
        foreach my $addr (@emailAddr) {
            print $addr , "\t";
            print $entry->get_value('givenName'), " ";
            print $entry->get_value('sn'), "\t \n";
        }
    }
}

Und in der .muttrc die folgende Zeile einfügen:

set query_command = "ldap_query '%s'"

Ggf. noch ein

apt-get install libnet-ldap-perl

Und du solltest wie gewohnt mit Q die Adressen abfragen können, nun jetzt halt aus dem LDAP-Verzeichnis