[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