नोट: अद्यतन डीसी। 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 पढ़ सकता है। मैनुअल निम्नलिखित बताता है:
अपवाद कथन त्रुटियों को जाल करता है जो आमतौर पर मेलड्रॉप को समाप्त करने का कारण बनता है। यदि के भीतर किसी भी घातक त्रुटि का सामना किया जाता है तो अपवाद खंड द्वारा संलग्न बयान के ब्लॉक, निष्पादन अपवाद खंड के तुरंत बाद फिर से शुरू हो जाएगा।
आपके एमयूए पर निर्भर करता है। हेडर जोड़कर पढ़ने के रूप में कुछ चिह्न, कुछ इसे फ़ाइल नाम में एन्कोड करते हैं (यदि आप मेलडिर का उपयोग कर रहे हैं, तो फ़ाइल नाम के अंत में "," जोड़ने का प्रयास करें ... मुझे लगता है कि यह अल्पविराम था), दूसरों के पास एक रहस्य है सूचकांक कहीं भी एमयूए के बाहर से उपयोग करना मुश्किल है। – tripleee