Dies ist eine alte Version des Dokuments!
Benno-client ist ein Kommandozeilen-Client für das REST API von Benno MailArchiv. Dieses Perl-Script kann als Basis für eigene Implementierungen genutzt werden.
Daneben bietet es auch die Möglichkeit, größere Mengen von E-Mails anhand von Suchkritereien zu ermitteln und diese z.B. aus dem System zu exportieren.
Benno Client ruft stellt Suchanfragen per REST-API an Benno MailArchiv. Die Anfragen können mit Hilfe der Lucene Query-Syntax formuliert werden.
Eine Suche gibt die Anzahl der gefundenen E-Mails zurück.
# benno-client -q 'From:m.hendriks@hansen-und-meyer.de' 2016:446E2DD35A73880A569992D2CAC77EE78ACDA94383EA42247869D81CA5AD850800 2016:3B582513165E3BCEEF113F44F200FA9A4534EB3BFAE37264867745CE4EB4424500 2016:3B582513165E3BCEEF113F44F200FA9A4534EB3BFAE37264867745CE4EB4424500 3 mails found (first: 1, last: 20, limit: 20)
Mit dem Schalter „-D“ (Debug) wird eine detaillierte Liste mit Informationen über die E-Mails ausgegeben.
# benno-client -q 'From:m.hendriks@hansen-und-meyer.de' -D ****** REQUEST ****** URI: http://benno2:3b24f5dfaa522a0882a590865d191260@localhost:21080/search/ Parameter: filterQuery => (*) archive => BennoContainer query => From:m.hendriks@hansen-und-meyer.de limit => 20 start => 0 ****** RESPONSE ******* Found: 3 First: 1 Last: 3 Limit: 20 Id(0): 2012:7C0D91484BA4DE568EEDF4D8F8936BCA2F159988C8E6C1DB3A2F3E95429D8B3B00 From: m.hendriks@hansen-und-meyer.de Date: 201206211211 Attachment: 1 To: j.kohning@hansen-und-meyer.de Subject: Firmenstruktur Id(1): 2012:FCAD7408A4C29D4A497E9BB84CCC7ECA82E489E59F4BB0E84157E89E4D75DF6F00 From: m.hendriks@hansen-und-meyer.de Date: 201206211219 Attachment: 1 To: j.kohning@hansen-und-meyer.de Subject: Re: Re: Firmenstruktur Id(2): 2012:E51F8A601C08E09004C02833347EFC2D7AD92E757FE4CEC5B10AD869E0D5BB2800 From: m.hendriks@hansen-und-meyer.de Date: 201206211224 Attachment: 1 To: j.kohning@hansen-und-meyer.de Cc: Sabine Petersen <info@hansen-und-meyer.de> Subject: Nochmal: Firmenstruktur
Diese Ausgabe kann jetzt genutzt werden, um die gefundenen E-Mails zu exportieren.
# benno-client -q 'From:m.hendriks@hansen-und-meyer.de' 2012:7C0D91484BA4DE568EEDF4D8F8936BCA2F159988C8E6C1DB3A2F3E95429D8B3B00 2012:FCAD7408A4C29D4A497E9BB84CCC7ECA82E489E59F4BB0E84157E89E4D75DF6F00 2012:E51F8A601C08E09004C02833347EFC2D7AD92E757FE4CEC5B10AD869E0D5BB2800
# benno-client -i 2012:E51F8A601C08E09004C02833347EFC2D7AD92E757FE4CEC5B10AD869E0D5BB2800
Im unten aufgeführten Beispiel sollen alle E-Mails des Benutzers „m.hendriks@hansen-und-meyer.de“ vom Jahre 2017 exportiert werden. Falls für den Benutzer mehr als 10.000 E-Mails archiviert wurden, sollte das Limit entsprechend höher gesetzt werden.
#!/bin/bash # # benno-client -q '(Sender:m.hendriks@hansen-und-meyer.de OR Recipient:m.hendriks@hansen-und-meyer.de) AND Date:[201701010000 TO 201808271605]' | \ while read bennoId; do [ "$bennoId" = "No results found." ] && exit benno-client -i $bennoId > /tmp/${bennoId}.eml done
# benno-client -h Usage: /usr/sbin/benno-client [-h] [-V] -s <secret> [-H <hostname>] [-c <container>] [-P <port>] <-q|-i> -s <secret> shared secret -q '<lucene query>' lucene query string or file with filter (search header as "HEADER-<HEADER-NAME>") -i '<mailid>' fetch mail with id -f '<lucene query>' lucene filter string or file with filter -b '<num>' begin with email number in response list -l '<num>' limit respones to num -c '<container>' archive container -H <hostname> (localhost) -P <port> (8080) -j dump raw JSON response -M print results as list of mail ids -v verbose -D debug mode