you mentioned x-uuencode - does any one know if/where there is
a definition of this, i.e. the use of uuencode with mime ?
There is not and can never be a formal definition of this -- an x- CTE is by
definition a private, nonstandard thing.
But in practice the MIME aspect of this is simple enough -- put whatever you're
calling uuencode today in a MIME part, label it with CTE x-uuencode, done.
The tricky part is what you're calling uuencode today. I've seen so many
variants on the uuencode theme it isn't funny. As a practical matter I'd
(0) Don't put anything in the part other than the uuencode material. Cute
comments confuse some decoders.
(1) Include a begin line with a fixed three digit protection of "600" and a
filename consisting entirely of US-ASCII letters, numbers, and at
most one period. The word "begin" needs to be in lower case.
(2) Have all lines be of length "M" except the last. Absolutely do not use
lines longer than 76 characters.
(3) Use ` instead of space for the zero value in your encoding.
(4) Follow the last, possibly short, line with a single line of length "`"
(otherwise known as zero) and follow that with a line containing an "end".
(5) Don't use any per-line checksums, checksums at the end.
Most uudecoders can handle this variant -- the only problematic aspect of
it may be the use of "`" rather than space, but in my opinion you are more
likely to run into trouble with messed up spaces than you are with decoders
that cannot handle "`".
What a decoder should do is much harder question, and one I simply don't have
time to get into in any detail.
And before anyone asks, the answer is yes, I've seen each and every one of
these guidelines violated more than once, and I've seen trouble arise from each
one of them.