[BUG] MailMessage/MIMEDocument parsing doesn't work beyond the first level.
Lex Spoon
lex at cc.gatech.edu
Tue Apr 30 05:21:31 UTC 2002
Ken Causey <ken at 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
More information about the Squeak-dev
mailing list
|