HTML email als HTML pagina bewaren

Als je een emailtje, opgemaakt in HTML, in Outlook Express als HTML wilt opslaan stuit je op twee problemen:

  1. Alhoewel er plaatjes in de HTMl vermeld staan, zie je geen attachments, en
  2. Als je Bestand->Opslaan Als... (of File->Save As...) kiest, en je selecteert als bestandstype HTML, zie je de plaatjes niet in het resultaat.

In de HTML kunnen namelijk twee typen verwijzingen staan naar een plaatje. Een http link (bijv. http://www.nrc.nl/images/koeienth,0.jpg) of inline MIME links (bijv. geelbalk.mhtml@www.nrc.nl). De http links zullen het wel doen, maar de inline MIME links niet. Onderaan deze pagina staan de bestanden, waarmee op deze pagina gewerkt wordt.

De inline MIME bestanden uit het emailtje halen

Sleep het emailtje naar een folder, bijvoorbeeld de desktop. Je kunt het emailtje nu als bestand bewerken. Doe dit met een teksteditor, zoals Notepad. Je zult in de email-header (de tekst boven de eerste lege regel) nu een regel zien als:

 Content-Type: multipart/related;

Dat betekent dat de bestanden in dit mailtje bijelkaar horen, en dus geen attachments zijn. Vervang multipart/related door multipart/mixed; bewaar het; open het nu weer met Outlook Express; en voilĂ , allemaal attachments.

De cid's vervangen door bestandsnamen

Je hebt nu toegang tot de attachments. Nu moeten de inline MIME links in de HTML nog vervangen worden door de bestandsnamen. Als je de body van het emailtje (onder de eerste lege regel) bekijkt, zie je repeterende blokken als:

 ------_=_NextPart_002_01C141A3.9B5D4420
  Content-Type: image/gif;
    name="nieuwsbrief.gif"
  Content-Transfer-Encoding: base64
  Content-Disposition: attachment;
    filename="nieuwsbrief.gif"
  Content-ID: 
  Content-Location: ATT-2-87B998400AADD511935B00508B5D5C6C-n
    ieuwsbr.gif

  R0lGODlh2AEXALMAAP/GAP/OAP/WAP/OCP/SDP/WEP/WGP/WKfrXRP/kcf/vmP/1vf/32v//5v//
  [....]

Belangrijk voor ons doel zijn de headers Content-Disposition en Content-ID (cid). De bestandsnaam die bij Content-Disposition hoort, wordt gebruikt als attachment bestandsnaam. De waarde die achter Content-ID: tussen scherpe haken staat, wordt in de HTML als verwijzing gebruikt (door er cid: voor te zetten). Ergo, vervang de cid waarde door de bestansnaam van veld Content-Disposition.

Dat is veel werk. Echter, dit kan enigszins geautomatiseerd worden. Als je het betreffende emailtje als tekst in onderstaand tekstvak paste, dan kun je met een druk op de knop deze FileName/Content-ID paren eruit zoeken.



Stop nu de bewaarde HTML body (die van File->Save As...) in onderstaand tekstvak. Druk op de knop om de cid's te vervangen door bestandsnamen. Bewaar het resultaat als je uiteindelijke HTML versie.

Afsluiting

Ik had natuurlijk ook een tooltje in VB kunnen schrijven, waarbij je het emailtje naar dat tooltje kunt slepen, waarop het tooltje dan de boel verwerkt en bewaard. Doe jij het? (stuur me de URL en ik plaats hem). Mij is het iets te veel werk. Tevens vind ik dat Outlook Express het zelf zou moeten kunnen: De optie Save As HTML zou ook de gerelateerde bestanden op moeten slaan. Maar aan de andere kant, zo kun je mooi even onderzoeken hoe zo'n mailtje nu eigenlijk werkt.

Bijlagen