Mutt LDAP-Query: Unterschied zwischen den Versionen
Stella (Diskussion | Beiträge) (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...) |
Stella (Diskussion | Beiträge) |
||
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