Procmail filter for automatic windows-1251 and UTF-8 -> koi8-r processing

Procmail is the ultimate incoming mail processor. Get and compile latest procmail version first, read the manuals, especially procmailrc(5) and add following lines to your ~/.procmailrc. Please notice that ^I sequences represents real TAB characters, so don't cut&paste this example literally, replace them to the real TABs afterwards. The string "fromwin -b" below is not part of procmail system and means any filter which decode stdin to stdout using windows-1251->koi8-r decode table, I recommend d1489 converter, just follow the link.

 :0 h * ^Content-Type:[ ^I]*text/(plain|html) { :0 fbw * ^Content-Transfer-Encoding:[ ^I]*quoted-printable | mimencode -u -q :0 Afhw | formail -I "Content-Transfer-Encoding: 8bit" :0 fbw * ^Content-Transfer-Encoding:[ ^I]*base64 | mimencode -u -b :0 Afhw | formail -I "Content-Transfer-Encoding: 8bit" } :0 * ^Content-Type:[ ^I]*text/plain([ ^I]*;[ ^I]*charset="?windows-1251"?)?[ ^I]*$ * ^Content-Transfer-Encoding:[ ^I]*[78]bit { :0 fw | fromwin -b :0 Afhw | formail -I "Content-Type: text/plain; charset=koi8-r" } :0 * ^Content-Type:[ ^I]*text/plain[ ^I]*;[ ^I]*charset="?utf-8"? * ^Content-Transfer-Encoding:[ ^I]*[78]bit { :0 fw | iconv -f UTF-8 -t KOI8-R :0 Afhw | formail -I "Content-Type: text/html; charset=koi8-r" } :0 * ^Content-Type:[ ^I]*text/html([ ^I]*;[ ^I]*charset="?windows-1251"?)?[ ^I]*$ * ^Content-Transfer-Encoding:[ ^I]*[78]bit { :0 fw | fromwin -b :0 Afhw | formail -I "Content-Type: text/html; charset=koi8-r" } :0 * ^Content-Type:[ ^I]*text/html[ ^I]*;[ ^I]*charset="?utf-8"? * ^Content-Transfer-Encoding:[ ^I]*[78]bit { :0 fw | iconv -f UTF-8 -t KOI8-R :0 Afhw | formail -I "Content-Type: text/html; charset=koi8-r" }