This is a nice idea. Your program does not seem to encode the equals sign "=" or underscore "_" in 'Q' encoded headers. I suspect that in your function mlfi_eom:if (subj[n] & 0x80 || subj[n] == ' ' || subj[n] == '\t' || subj[n] == '?') { should be: if (subj[n] & 0x80 || subj[n] == ' ' || subj[n] == '\t' || subj[n] == '?' || subj[n] == '=' || subj[n] == '_') { Otherwise (I think) Section 4.2(3) of RFC2047 is not quite being followed.
You're right, of course, thanks! It's fixed now.
My experience is that it's mostly the subject header that comes with 8bit chars, so therefore I choose to deal just with it. And it makes the coding easier too...Also, extending this milter to handle From: and To: and Cc: and so forth would require an RFC822 header parsing capability, so it could distinguish ctext, text, and word tokens within them. I suspect that would significantly increase the complexity of the code.
Cheers,
- Peter
--
Peter 'Luna' Runestig (fd. Altberg), Sweden <[EMAIL PROTECTED]>
PGP Key ID: 0xD07BBE13
Fingerprint: 7B5C 1F48 2997 C061 DE4B 42EA CB99 A35C D07B BE13
AOL Instant Messenger Screen name: PRunestig