2011-05-04 6 views
6

पढ़ने के रूप में फ़ोल्डर और चिह्न पर जाएं एक साधारण प्रश्न: मैं एक निश्चित विषय के साथ ईमेल को एक फ़ोल्डर में स्थानांतरित करना चाहता हूं और बाद में पढ़ने के रूप में चिह्नित करना चाहता हूं।प्रोसेमेल:

:0: H 
* ^Subject:.*(ThisIsMySubject) 
$HOME/mail/ThisIsMyFolder 

के साथ मेरे लिए काम चलाना, लेकिन मेल को पढ़ने के रूप में कैसे चिह्नित करें?

+0

आपके एमयूए पर निर्भर करता है। हेडर जोड़कर पढ़ने के रूप में कुछ चिह्न, कुछ इसे फ़ाइल नाम में एन्कोड करते हैं (यदि आप मेलडिर का उपयोग कर रहे हैं, तो फ़ाइल नाम के अंत में "," जोड़ने का प्रयास करें ... मुझे लगता है कि यह अल्पविराम था), दूसरों के पास एक रहस्य है सूचकांक कहीं भी एमयूए के बाहर से उपयोग करना मुश्किल है। – tripleee

उत्तर

11

नोट: अद्यतन डीसी। 16 वीं 2011

procmail समाधान

निम्नलिखित नुस्खा मेरे लिए काम करता है।

MAILDIR=$HOME/Maildir 
:0 
* ^X-Spam-Flag: YES 
{ 
    # First deliver to maildir so LASTFOLDER gets set 
    :0 c 
    .Junk 

    # Manipulate the filename 
    :0 ai 
    * LASTFOLDER ??()\/[^/]+^^ 
    |mv "$LASTFOLDER" "$MAILDIR/.Junk/cur/$MATCH:2,S" 
} 

Maildrop समाधान

प्रस्तावना: .Junk स्पैम फ़ोल्डर है हाल ही में मैं था (नहीं, मैं चाहता था) एक maildropfilter साथ एक ही बात करते हैं। man maildropfilter पढ़ने के बाद मैंने निम्नलिखित नुस्खा को concocted। मुझे यकीन है कि लोगों को यह आसान लगेगा - मुझे पता है कि मैं करता हूं।

नीचे दिया गया उदाहरण नए ईमेल को पढ़ने के रूप में चिह्नित करता है लेकिन पुराने संदेशों को भी अपठित करता है।

SPAMDIRFULL="$DEFAULT/.Junk" 

if (/^X-Spam-Flag: YES$/ || \ 
    /^X-Spam-Level: \*\*\*/ || \ 
    /^Subject: \*+SPAM\*/) 
{ 
    exception { 
    cc "$SPAMDIRFULL" 
    `for x in ${SPAMDIRFULL}/new/*; do [ -f $x ] && mv $x ${SPAMDIRFULL}/cur/${x##*/}:2,S; done` 
    `for x in ${SPAMDIRFULL}/cur/*:2,; do [ -f $x ] && mv $x ${SPAMDIRFULL}/cur/${x##*/}S; done` 
    to "/dev/null" 
    } 
} 

ध्यान दें कि exception आदेश counterintuitive पढ़ सकता है। मैनुअल निम्नलिखित बताता है:

अपवाद कथन त्रुटियों को जाल करता है जो आमतौर पर मेलड्रॉप को समाप्त करने का कारण बनता है। यदि के भीतर किसी भी घातक त्रुटि का सामना किया जाता है तो अपवाद खंड द्वारा संलग्न बयान के ब्लॉक, निष्पादन अपवाद खंड के तुरंत बाद फिर से शुरू हो जाएगा।

+0

जब मुझे आपका प्रश्न मिला तो मैं मेलड्रॉप फ़िल्टर की खोज कर रहा था। लेकिन मेलड्रॉप के लिए मुझे एक विस्तृत स्पष्टीकरण मिला [यहां] (http://blog.sigil.org/2009/11/mark-as-read-with-maildrop.html) – drumfire