[Eisfair] Bestimmte (gelesene) Mails aus ~/.imapmail/INBOX lc3b6schen
Marcus Roeckrath
marcus.roeckrath at gmx.de
Do Apr 13 19:30:31 CEST 2017
Hallo Jürgen,
Juergen Edner wrote:
>> Nach Durchsicht des Codes von archmbox wird der (un-)gelesen Status einer
>> Mail anhand einer Status-Headerzeile einer Mail ermittelt.
>>
>> Eine solche legt aber unser imap-Server nicht an; keine Ahnung, wo die
>> Flags in der Mail stecken, denn in webmail oder Thunderbird wird ja der
>> Mailstatus korrekt angezeigt.
>
> wenn der zuvor von Dir verwendete Befehl funktioniert hat, liegt die
> INBOX-Datei im MBX-Format vor.
> Das archmbox-Programm kann aber originär nur Dateien im mbox-Format
> lesen, weswegen die Datei z.B. mittels des mailutil-Befehls in dieses
> Format konvertiert wird bevor eine Aktion ausgeführt wird.
>
> Beispiel:
>
> mailutil copy /home/<user>/.imapmail/INBOX
> "#driver.unix:/home/<user>/.imapmail/INBOX.MBOX"
Genau darauf bin ich auch eben gestossen.
Nach Wandlung vom mbx ins mbox-Format gibt es die Status und
X-Status-Zeilen.
Wenn ich mit einer RegExp den Status-Check nachbilde, funktioniert es wie
gewünscht:
# archmbox --format mbx -l -o -1 -v 3 --keep-flagged -X
Subject='^=\?UTF\-8\?B\?TmFjaHJpY2h0IHZvbi.*' -X Status='^R.*' /root/INBOX
-X ist UND-Verknüpfung von RegExp-Ausdrücken (-x = ODER).
Hier wurden mir nun nur die gelesenen Mails angezeigt.
archmbox checkt nach Formatwandlung mit folgender Unterroutine:
sub is_unread($) {
# Check if a message is unread.
#
# $_[0]: headers information (reference)
#
# Returns 1 if the message is unread
my $headerref = $_[0];
# No 'Status' header. Assume the message is unread.
return 1 unless exists $$headerref{'Status'};
# Check the status
return 1 if $$headerref{'Status'} !~ /R.+/;
return 0
}
Ich kann kein Perl, aber dennoch sieht das für mich logisch aus.
Returnlevel 1 heißt ungelesen und 0 gelesen.
Ändere ich die Suchzeile in
return 1 if $$headerref{'Status'} !~ /R/;
scheint es zu funktionieren.
--keep-flagged scheint korrekt zu funktionieren.
--
Gruss Marcus
Mehr Informationen über die Mailingliste Eisfair