[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: postings als "gelesen" markieren?



Hallo,

Am Thu, 06 Apr 2006, Dirk Salva schrieb:
>On Thu, Apr 06, 2006 at 05:46:26AM +0200, David Haller wrote:
>> Mit 'formail' den 'Status:'-Header zu 'RO' ergaenzen?
>> ==== UNGETESTET! ====
>> :0 H
>> * ^X-Mailinglist: blubb
>> {
>>     :0 fw
>>     * 1^0 ^From: bla
>>     * 1^0 ^From: fasel
>>     | formail -i 'Status: RO'
>> 
>>     :0
>>     blubb-ml
>> }
>> ====
>
>Öhm, ja...
>Wenn Du mir netterweise noch erklären könntest, was da genau passiert!?

Die aeussere Regel passt auf die Mailingliste, den Header muss man
natuerlich anpassen. Fuer diese ML verwende ich zum Beispiel:

:0 H:
* ^X-Mailing-List:.*debian-user-german@lists\.debian\.org
debian-de

Die "recipe-action" (auch in der manpage so bezeichnet) ist dabei das
"debian-de", d.h. die Mails werden direkt in die mbox geschmissen. Nun
gibt's aber auch noch als "action":

       {      Followed by at least one space, tab or newline will
              mark  the  start of a nesting block.

Und im Block kann man wiederum Regeln verwenden. Die erste ist eine
Filter-Regel, wobei die "* 1^0" scores ein "ODER" bewirken. Also
equivalent zu:

    :0 fw
    * ^From: (bla|fasel)
    | formail ...

sind. Aber eben wesentlich uebersichtlicher, wenn's viele Kriterien
werden (s.u.).

Das "formail -i "Status: RO" setzt (als Filter) den Status-Header so,
wie er von Mutt fuer gelesene Mails verwendet wird.

Die zweite Regel ist eine "Null-Bedingungs-Regel" und sortiert einfach
alles in die angegebene Mailbox ein. Also egal ob die vorausgehende
Filter-Regel gegriffen hat oder nicht.

Wenn du also z.B. auf dieser ML mich und "bill.gates@hotmail.com" als
gelesen markieren wolltest und zusammen mit allen anderen Mails auf
dieser Liste nach "debian-de" einsortieren wolltest, dann sollte
folgende Regel passen (immer noch ungetestet! *g*):

====
:0 H
* ^X-Mailing-List:.*debian-user-german@lists\.debian\.org
{
    ### dieser Block wird fuer alle Mails ausgefuehrt, auf die die
    ### "X-Mailing-List"-Bedingung passt...

    ### wenn eine der folgenden, mit '1^0' "veroderten", Bedingungen
    ### passt, mittels formail als gelesen markieren:
    :0 fw
    * 1^0 ^From: .*lists@dhaller\.de
    * 1^0 ^From: .*bill\.gates@hotmail\.com
    | formail -i 'Status: RO'

    ### und alle mails (also die, auf die der "X-Mailing-List"-Header
    ### passte, und egal ob anschliessend als gelesen markiert oder
    ### nicht) in "debian-de" einsortieren:
    :0
    debian-de
}
====

Hat man das Schema mal begriffen ist das simpel und sehr
flexibel. Nein, "intuitiv" ist die Syntax nicht ;) Aber auf die Art
laesst sich sehr viel anstellen. Z.B. per Header bestimmte Mails
rausgreifen und per pipe durch einen "Filter" wie z.B. formail jagen,
oder eben eine Kopie (per ':0 cw' statt ':0 fw') an ein Programm
uebergeben das z.B. die Mail auseinandernimmt und einen Anhang an ne
DB verfuettert -- und das Original wie gewohnt abspeichern... So mache
ich das z.B. mit den heise-register Mails ;)

>Wobei, eigentlich bin ich davon ja sowieso abgekommen und habe mich
>mittlerweile doch auf scoring eingelassen. Nur hätte ich scoring halt
>gerne nur in bestimmten Mailinglisten.

Das Mutt-Scoring passiert AFAIK eben nur bei der Anzeige der Mails,
und da kann man AFAIK keine Zusatzkriterien angeben... Du koenntest
aber ueber so einen procmail-Filter einen eigenen 'X-Score...' Header
setzen und dann in Mutt diesen Header als "score"-Kriterium nehmen:

==== ~/.procmailrc [oder included] ====
:0
* ^X-Mailing-List:.*debian-user-german@lists\.debian\.org
{
    :0 fw
    * 1^0 ^From:.*idiot@stupido\.invalid
    * 1^0 ^From:.*dau@aol\.com
    # ...
    | formail -i "X-Score-debian-user-german: -1000"

    :0 fw
    * 1^0 ^From:.*nervensaege@gmx\.net
    # ...
    | formail -i "X-Score-debian-user-german: -500"

    :0
    debian-de
}
====

==== ~/.muttrc (oder includes wie ~/.mutt/scores [o.ae.]) ====
score '~h "X-Score-debian-user-german: *-1000'   -1000
score '~h "X-Score-debian-user-german: *-500      -500
# ...
====

Wobei du per formail mehr oder weniger beliebige scores (einfach
Zeichenketten!) setzen kannst auf die du dann in der mutt-scores-Datei
wieder "matchst"...

Wie gehabt: alles ungetestet!

HTH & HAND,
-dnh

-- 
Hallihallohallöle.
Sind Sie ein Troll? Kommen Sie zur dag°.
Da werden Sie geholfen.



Reply to: