Hi,
From a 10,000ft overview, here is what I would do.
Flatten your mime parts into a tree. Make sure each part contains 1, and only 1 part (not a parent like a multipart/related, or something like that).
1)Check the following conditions for the body:
a)If the 1st part is HTML,set it to the body of the message
b)If the 1st part is plain text, and the 2nd part is *not* html, set the plain text part to the body of the message.
c)If the first part is plain, and the 2nd part is html, create 2 alternative views.
***This assumes none of these parts has a Content-Disposition:attachment header.
2)Loop through the remainder of the parts. Add everything else as an attachment, except
a)images that have a content-id header set, or
b)images that have a content-location header set.
If one of those headers exist, then I would add those images in as a LinkedResource (only if there is actually a HTML body part).
That should get you started, and cover about 99% of the normal email out there.
Cheers!
Dave