Please *don't* make this change unless you can answer this question:
how do you send a binary part that doesn't terminate with a CR-LF?
That's that reason why there are two CR-LFs at the end of a text part --
one is part of the body part, and the other is part of the terminator.
The modified BNF Mark proposed terminates all encapsulations with CRLF.
So text parts will still end with two CRLFs and binary parts will end
with at least one CRLF (the added one). Here's the BNF Mark proposed:
close-delimiter := "--" boundary "--" CRLF
delimiter := "--" boundary CRLF
epilogue := optional-text
encapsulation := delimiter part-encapsulation CRLF
multipart-body := preamble 1*encapsulation close-delimiter epilogue
premble := optional-text
optional-text := *[*text CRLF]
Doesn't this still work with binary parts?