Der Emailclient mutt
bietet ein einfaches und universelles Interface um Adressen in
beliebigen Adressbüchern zu suchen. Eine Abfrage wird mit der
Taste Q
in der Mailboxübersicht oder mit
CTRL-t
wärend der Frage nach einer Emailadresse
gestartet.
Die eigentliche Suche wird von dem Programm, das in der Konfiguration mit
set query_command="<command> %s"festgelegt ist, durchgeführt. Dieses schreibt als Ergebnis der Suche eine dreispaltige Tabelle mit den Feldern Emailadresse, Name und Identifier auf STDOUT. Die Spalten sind per Tabulator getrennt.
Für die Abfrage der Datenbank reicht ein kleines Perl-Script, das das RPC::OGo Modul nutzt um die XMLRPC Schnittstelle zu abstrahieren.
#!/usr/bin/perl # # Usage: mutt_ogo_query <username> <password> <name> # use RPC::OGo; use Text::Iconv; my %config; $config{'username'} = $ARGV[0] $config{'password'} = $ARGV[1] $config{'host'} = 'opengroupware.domain.de'; $config{'port'} = '20001'; my $name = $ARGV[2]; my $ogo = new RPC::OGo(%config); $Ps = $ogo->person(); my @ids = $Ps->fetchIds("*$name*",1); $converter = Text::Iconv->new("utf-8", "iso-8859-1"); foreach (@ids) { my $pd = $Ps->getById($_); next unless $pd->email; print $pd->email , ,"\t"; print $converter->convert($pd->firstname), " "; print $converter->convert($pd->name),"\t"; print "OGo Suche"; print "\n"; }
Das Script wird in Mutt mit der Zeile
set query_command="mutt_ogo_query <martin> <secret> <%s>"
eingebunden.