Hallo,
Ich bin der Entwickler dieser Filter. Entschuldigung, aber ich komme nun sehr selten an der Forum. Ich lerne noch Deutsch, und so technische schrieben würde sehr schwer sein, darum schreibe hier in Englisch - wenn Sie können etwas nicht verstanden, und Google Translate kann keine helfe geben, dann sagen Sie mir und ich versuche noch ein mal in Deutsch.
--
Misnamed Filter uses the following logic to automatically learn from addresses:
First: It only learns from Non-Spam messages, not from messages marked as Spam.
When learning from a non-spam message, it will look through all the headers and find the "to", "cc" and "bcc" headers. (If you are familiar with regular expressions, it uses this:
- Code: Alles auswählen
^(to|b?cc): ?(?<header>.*(\n\s.*)*)$
, and the "header" group is used as the value of that header).
For each matching header that it finds, it will try and extract email addresses that have display names - so the address must appear in <> brackets, preceded by the display name associated with that address. (Regular expression:
- Code: Alles auswählen
(,\s*)*(?<name>(?:[^,]+[^"',]|"[^"]+"|'[^']+'))\s+<(?<address>[^>]+)>
. ", ', and spaces are trimmed off the resulting name.)
Addresses which don't have display names are ignored. Those which do have display names have the display name decoded using the .net standard mime header decoding routine. This copes with Base64 and quoted printable encoded text, including UTF-8 (and other character sets).
Once it has the email address and the decoded name associated with it, it checks to see what addresses you already have configured. If it finds an email address (or address pattern) that matches the address in the message being learnt from, then it looks to see what names are already configured for that address. If any of the names already configured match either the decoded or the raw encoded name in the message being learnt from, it takes no further action. So, if you already have your name configured, it will not add an encoded version of that same name.
If it did not find any matching name, it will add the
decoded name to the list of valid names for the email address-set that the email address was found in. If it did not find any matching email address, it will of course first create a new address-set containing just that email address (the name of the set will be prefixed with "(auto)", and add the name to that.
In conclusion, encoded names will never be automatically added. You should, in general, never need to add the manually either. When checking names on incoming mail, it will always decode the name to check it, so the only reason to add an encoded name to Misnamed Filter is if you want
only the encoded form to be accepted, and not the plain text form. That would be quite unusual.
If you are concerned that Misnamed Filter is not working properly, then the best thing to do is to go to the configuration window for it, and click the Test button. In there, you can put the email address and the name. The name can be encoded, and it will show you a tooltip displaying how it has been decoded. It will then show you whether that is a known email address, and whether that name is valid for that address.
If you are still sure there is a bug, then please send me the headers of the email that is not working as you expected, and the file
- Code: Alles auswählen
%APPDATA%\Spamihilator\plugins\Misnamed Filter\Misnamed Filter.settings.xml
and I will try and figure out what is going on.
Finally, although I've made every effort to make the auto-learning as intelligent as possible, it is still not as flexible as configuring exactly what your email addresses are and what names are allowed for them. Once you have it configured correctly, you can turn off the learning which will reduce the chance of false-positives when learning from email addresses that are not yours.
Regards,
Alex Vallat