It's great you wrote this up. Now that I see it laid out, I'll argue
for removing the 'filename method' and instead suggesting that if the
text/html body part itself has a content-location, that the URL
contained within be considered the 'base' and that any relative URLs
(including those that look like filenames) be considered relative to
the particular base.
That is,
Content-Type: Multipart/related; boundary="bdbdbd";
type=Text/HTML
--bdbdbd
Content-Type: Text/HTML
Content-Location: "http://www.dvs.su.se/samples/example.html"
... text of the HTML document, which might contain a hyperlink
to the other body part, for example through a statement such as:
<IMG SRC="../images/DSV-sign-eng.gif">
--bdbdbd
Content-Type: Image/GIF
Content-Location: "http://www.dsv.su.se/images/DSV-sign-eng.gif"
--bdbdbd--
following the rules of RFC1808, if the BASE is given by the
content-location of the first part, the relative URL contained inside
will identify the location below.
I think you should point out that
Content-Location: "cid:blahblah@host.dom"
and
Content-ID: <blahblah(_at_)host(_dot_)dom>
are equivalent. And we should consider whether
Content-Location: "url"
should be written using Content-Disposition, e.g., with:
Content-Disposition: inline; uri="url"
since the location presented is not *actually* the location of the
data, but rather the header says that you should treat the embedded
content AS IF it were at that location.