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.

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.
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...

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

Reply via email to