Spamfilter können auf Wunsch die aussortierten Mails am Server speichern. An sich sieht man es den Mails schon am Betreff an, ob sie tatsächlich spam oder doch ham (und in diesem Fall eventuell ein false positive) sind.
Allerdings müssen non-ascii Teile des Mailheaders passend encodiert sein, was das Lesen teilweise unmöglich macht.
Ein paar Beispiele:
=?iso-8859-1?Q?Hall=F6chen?=
=?UTF-8?Q?Hall=C3=B6chen?=
=?UTF-8?B?SGFsbMO2Y2hlbg==?=
=?iso-2022-jp?B?GyRCOiNHLyRiSSwkOiRkJGo/ayQyJGsbKEIhIRskQkcvS3ZBMCRO?=
=?GB2312?B?0rvSubzkyMM1MDDN8sjLudjXosT6svrGt7XEzfjC59Oq?=
Da sind diverse encodings, mal in quoted printable, mal in base64. Allen gemeinsam ist die schwere Lesbarkeit.
Mailheader oder Teile davon kann man am einfachsten mit perl decodieren:
echo '=?UTF-8?B?SGFsbMO2Y2hlbg==?=' | perl -MEncode -ne 'print encode("utf8",decode("MIME-Header",$_))'
Obiges Beispiel decodiert nicht einfach nur den Header, sondern encodiert auch gleich in UTF-8 (default wäre iso).
Aber auch ganze Unterordner voller Spammails können durchsucht werden:
ls -1t | head -20 | xargs grep '^Subject: =?' | perl -MEncode -ne 'print encode("utf8",decode("MIME-Header",$_))'
Dieses Beispiel durchsucht die neuesten 20 Mails im Ordner nach encodierten Subjects und gibt diese decodiert als UTF-8 aus.
Nicht encodierte Teile sind übrigens gar kein Problem.