<<< Date Index >>>     <<< Thread Index >>>

Re: multipart/alternative question



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

- -----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On Thursday, July 16 at 10:49 AM, quoth David Champion:
> The attachment-counting algorithm has a flag that decides whether to 
> traverse (recurse) the container types while looking for attachments 
> that qualify by your "attachments" rules.
>
> Multipart/alternative containers are specifically excluded from ever 
> being traversed.  Why?  Because mutt at this stage has no way of knowing 
> which alternative in a multipart/alternative you want looked at.

Well, it's not an issue of "which alternative I want to look at", 
because even if the attachment counter obeyed my alternative_order 
rules, I prefer to look at the text alternative.

> It either needs to count all attachments within the 
> multipart/alternative, which is most assuredly exactly the thing you 
> least want, or it needs to guess which alternative represents the 
> view that you want counted. So it ignores multipart/alternatives.

I think we can do better than that, by looking to the MIME RFC for 
guidance.

> How often should an attachment that you're truly interested in 
> actually be part of the multipart/alternative enclosure?  I would 
> argue that Apple's arrangement here, while valid MIME, is not a 
> faithful representation of what the sender intended to send.

I agree, to a point. The MIME RFC (1521) describes the 
multipart/alternative type with a recognition that the alternatives 
are not *equivalent*. To wit:

     As with multipart/mixed, the order of body parts is significant.
     In this case, the alternatives appear in an order of increasing
     faithfulness to the original content. In general, the best choice
     is the LAST part of a type supported by the recipient system's
     local environment.

By that logic, Apple is not even required to provide an especially 
faithful representation of the email in the first alternative, as long 
as it has a very faithful representation in the last alternative. 
Often we think that the difference is primarily formatting, but the 
RFC doesn't say that.

Thus, for attachment counting purposes, we can reasonably decide to 
ALWAYS count *only* the attachments within the last alternative in a 
multipart/alternative MIME section. That's the one that should best 
reflect the "original" content, and thus that's the one that best 
reflects the intention of the user. It's technically possible to have 
attachments in other parts of the multipart/alternative, but by 
definition they are supposed to be somewhat less-faithful 
representations of the sender's original content, and so I don't think 
they should count toward the grand attachment total. But any 
attachments in that last alternative *SHOULD* count.

If you want to add a config option to allow it to count ALL 
alternatives, that's fine by me, but I think counting only the last 
alternative is perfectly reasonable and compliant.

The thing I like about this idea is that if someone sends a 
multipart/alternative that has the attachment in an earlier component 
but not a later component, we can point to the RFC and say "you're 
doing it wrong; the LAST component is the one that's supposed to have 
all the fancy stuff." (I.e. the choice to count only the last 
alternative is a defensible one.)

> She has a letter with an inlined PDF in the middle of it.  If Apple 
> Mail is honoring her intent, the children of the mp/alternative part 
> should be two multipart/mixed parts, each containing two text parts 
> with a PDF sandwiched in the middle.

I think it all depends on what you mean by "intent". Another way of 
looking at it is that Apple sent me her original content, formatted 
exactly the way she wanted, and additionally sent me a text-like 
representation of what she sent, just in case I can't render HTML.

> but what Apple Mail has done excludes the PDF content from 
> visibility in the text/plain view.  So does that exist as an 
> "attachment" or not?  It depends on whether you're reading text or 
> HTML.

Granted, mutt will only *display* the attachment inline if you view 
the message as text/html, but whether it's displayed or not should 
have nothing to do with whether it counts as an attachment. I think t 
should counts as an attachment if a) I consider inlined PDFs to be 
attachments and b) it is in the last component of the 
multipart/alternative.

> The best combination of efficiency and accuracy for this message 
> would have been:
>
> multipart/mixed 
> |-> multipart/alternative 
> | |-> multipart/mixed 
> | | |-> text/plain 
> | | |-> application/pdf (reference, no content) 
> | | `-> text/plain 
> | `-> multipart/mixed 
> |   |-> text/html 
> |   |-> application/pdf (reference, no content) 
> |   `-> text/html 
> `-> application/pdf (referent)

Yeah, but... that's so ugly and inefficient, I don't blame Apple for 
sending a smaller, simpler message (that complies with the letter and 
original spirit of the RFC).

By the way... would mutt's attachment counting view that as three 
attachments or only one? (Yes, I know multipart/alternatives are 
ignored, but let's say the structure was flattened a bit.) In other 
words, does mutt's attachment counting understand references?

~Kyle
- - -- 
Eskimo: If I did not know about God and sin, would I go to hell?
Priest: No, not if you did not know.
Eskimo: Then why did you tell me?
                                                       -- Annie Dillard
- -----BEGIN PGP SIGNATURE-----
Comment: Thank you for using encryption!

iQIcBAEBCAAGBQJKX23MAAoJECuveozR/AWeyZUQAKPYs9TtckaBSg8vOAvFBDhh
hZoJuj2ek8M/8Yul8NHz92+/VHOCZ+qJ15gGYughbiaDRvmo5roOehg3ocNLbqGE
ilKt4KdKnIKRB8O/MIZxjLDRmjaqd5nJA7a78zYLAJzU9g5vqgHFbgt0QmAzpqEb
O4CBL/7I6OsN3qBZOLUNgw2qmAJLYyRTrqLXD6RxW2XstXL2djsQLrey+mEYxg1f
RRUmuqFBJm++J7y3nkVli1icMiIr0/wbbq2e57pO04mXAzIBjS568P1nCDTPldyO
JSxg9ZUMVxC10vpnEdszlUWrHbgxXcr0D9eXBlPpjHGFG25FiOVHD+EnEjqbMfJH
J30apJQQ8baGRg0MtCEkByuTcBqlPKph6HILDcZW0VmQGpQLE9Re8sYWuKEDk4z/
x6kMu9eLGwlBvMlPjMQqPemMVXEzxMhRLsVYxnLFATclUnvLj9D+5q2YtI25SLPl
xYiprv4bOCmLem02ddxTYRXkqFCPTJccvt82nJ1Z1pGOFko/WBSm/vK6//p6kOCd
hsZ56ogvl6JL0RNMLP4RPxQ+ajxEzR/NELeuhPoT/vDcBoBKp3+04cIa9Pkq5kAM
pazmE0Zvtan9QfDuolI4MwMmj6yAhpxYAcZEHBjagYj8Z8P1/NAgAFNe5PRczssH
73TUf+sKMFwBp6u9k+wz
=TQWq
- -----END PGP SIGNATURE-----
-----BEGIN PGP SIGNATURE-----
Comment: Thank you for using encryption!

iQIcBAEBCAAGBQJKX23+AAoJECuveozR/AWefa0P/1kLqI8+5jY1MoV2QyruBTnO
XXM806pQj+7b2IB3sBawNCR+xKfJ0dKq1ENWTitCpAYm2Fx6tJ1R1UEuoWfT6nz3
okNPGUubAOy0ybn17NKJj+zudS90mxbsG3RlnAoJX7Tn/i6zUgDuu//9avOZQXtb
DshTKeIzqgII+i8GQoPLDlBMg8hVK/9RjjkpX6uEvTiIKfOLykenQxlglAFQ07/q
5AxPwuSlkgEDo7sp9OLPuC9qfL/XpwnMloriff6kpLy1W8zdCN1G5JOx9Qj29MZJ
dFx7leWRss0uAus6tGv0iCEU9qOUdwfsCO4HLD8pYYXhsEexktenGXQGqGflVkpv
xIJd8npc9ZQPhGMiYXY1Wql/+f6MjqNrnuRGwIDV3WYo+Mfp/QU6ISqONroOp2DO
VpuPtMJrKe4HV5GLHnyzudnRoWpOzuLzy1ekeabYlBCsCm741Kz9DR2l8ZtBjSLN
FifzBMVDOO+0CHk4xIPRHMx9Dxh4vK/qiprNWOtXrLuHqrYhaIlEA+QD17zd8ejH
sbSJynicqO+Jysd56t9Z2N8E4TbzWnYebHtmWSIUNdebK82o1LXCos4UK83jqBMe
6gLIzZLX8BMlUci4skMEICO+RTTyGpJTJ5Mptt6DfZv0EHSVw9EFd4RJEu2ETokx
WmkdTq/pFss6ICIErwqG
=E9ea
-----END PGP SIGNATURE-----