Spontaneous thought; Caudium truncates the data it sends to MIME (timeout?). Wasn't this a also problem in WebServer that has been fixed?
/ Martin Nilsson (har bott i google)
Previous text:
Maybe, but then - maybe not.
For a while I have been passing all my incoming mail through pike's MIME.Message (a total of about 16k messages by now), and I do observe a similar error on a small percentage of messages. No TCP is involved here (the messages are passed on through a pipe from procmail). In all cases I looked at, the rejected messages were spam from the Far East, so I assumed they were really malformed MIME and didn't worry too much about it. I guess I'll have a closer look now. /rjb
/ rjb
Previous text:
Well, I took a close look at one of my rejects, and it seems that the problem was related to having a multipart message nested in another, _and_ the boundary string of the outer one being a substring of that for the inner. To be specific:
crap;
(1) Result: "Content-type: multipart/mixed;boundary="XXX"\n\ncrap\n\n--XXX\nContent-type: multipart/mixed;boundary="XXXAA"\n\ndung\n\n--XXXAA\n\nabc\n\n--XXXAA--\n--XXX--\n"
MIME.Message(crap);
multipart message improperly terminated ("\ndung\n") /usr/local/pike/7.4.13/lib/modules/MIME.pmod/module.pmod:1078: MIME.Message()->create("Content-type: multipart/mixed;boundary="XXXAA"\n\ndung\n",0,0,0) object_program(MIME): MIME->Message() /usr/local/pike/7.4.13/lib/modules/MIME.pmod/module.pmod:1092: MIME.Message()->__lambda_65679_4_line_1083("Content-type: multipart/mixed;boundary="XXXAA"\n\ndung\n") /usr/local/pike/7.4.13/lib/modules/MIME.pmod/module.pmod:1082: MIME.Message()->create("Content-type: multipart/mixed;boundary="XXX"\n\ncrap\n\n--XXX\nContent-type: multipart/m
ixed;boundary="XXXAA"\n\ndung\n\n--XXXAA\n\nabc\n\n--XXXAA--\n--XXX--\n",0,0,0) object_program(MIME): MIME->Message() HilfeInput:1: HilfeInput()->___HilfeWrapper()
crap=replace(crap, "XXXAA", "YYY");
(2) Result: "Content-type: multipart/mixed;boundary="XXX"\n\ncrap\n\n--XXX\nContent-type: multipart/mixed;boundary="YYY"\n\ndung\n\n--YYY\n\nabc\n\n--YYY--\n--XXX--\n"
MIME.Message(crap);
(3) Result: MIME.Message()
(I have no idea whether this violates MIME...)
/ rjb
Previous text:
That does indeed violate MIME. RFC2046, section 5.1.1:
"Boundary delimiters must not appear within the encapsulated material, and must be no longer than 70 characters, not counting the two leading hyphens."
Here, the boundary delimiter ("--XXX") _does_ appear inside the encapsulated material (as part of the boundary delimiter "--XXXAA"), so the message is invalid and Pike is correct in rejecting it. Note that the line break following the delimiter is not part of the delimiter itself.
/ Marcus Comstedt (ACROSS) (Hail Ilpalazzo!)
Previous text:
Right. Also note that it is not clear whether this has anything to do with the reason for the problem originally reported as #3414.
Fortunately, my experience is that all messages I have seen that violate this rule were spam, and seem to have been generated by buggy mass-mailing software (so I hardly see this as a problem, unless my aim were to collect a corpus of spam mails...) /rjb
/ rjb
Previous text:
pike-devel@lists.lysator.liu.se