Ken Causey ken@ineffable.com wrote:
[snipped example message]
Excellent. Let's go:
To demonstrate my first method:
a body parts second body parts
returns #(). This method uses MIMEDocument>>parts
Okay. I don't know why. I don't especially care about trying to make this work. MailMessage>>parts is better.
To demonstrate my second method:
a makeMultipart parts second makeMultipart parts first
Let's see.
First, the makeMultiparts are distracting. They do nothing if the message isn't multipart already, and if the message *isn't* multipart, it will force them to be! That is undesired.
But the main issue is that your message is actually structured like this:
a b ("forwarded email with attachment) c (a single-part "multipart" message) d (an embedded message) e ("original attachment") e (test.txt)
Note that there is an extra layer here. Since it is encoded as a message, you'll have to decode it with "MailMessage from:" before proceding further. The following works to extract the attachment:
forwardedMessage := MailMessage from: a parts second parts first body content. forwardedMessage parts second
at this point you can keep appending 'makeMultipart parts first' and you continue to get back the same exact result. This method uses MailMessage>>parts.
In fact, the makeMultipart is more than distracting -- it is increasing the nesting depth, even as the "parts first" is decreasing it!
Overall, the difficulty is with the difference between a mail message and its textual representation. Okay I'm stopping now before I get a headache. :)
Lex