Er is door mij een e-mail viewer gemaakt in PHP welke de ruwe MIME mailtjes weergeeft. Nu werkt dit systeem al een lange tijd goed. Vandaag kreeg ik echter een melding dat bij een mailtje de bijlages niet worden getoond. In ruwe vorm ziet de mail er zo uit:
Zoals je ziet is de hoofd content-type: multipart/alternative. Dat bevat vervolgens een deel text/plain deel (deel 1) en een deel 2: multipart/mixed. Dit tweede deel bevat de attachments.
Ik interpreteer multipart/alternative als: "The multipart/alternative subtype indicates that each part is an "alternative" version of the same (or similar) content, each in a different format denoted by its "Content-Type" header." (Wikipedia: MIME)
Ook volgens rfc2046 (http://www.ietf.org/rfc/rfc2046.txt): "In particular,
each of the body parts is an "alternative" version of the same
information."
Oftewel, technisch gezien heeft deze e-mail geen bijlages. Het tweede deel van de multipart/alternative bevat de bijlages.
Outlook toont de bijlages echter wel. Echter mijn viewer niet.
Feitelijk gezien heeft de mail toch geen bijlages? Die zijn toch alleen aanwezig bij een multipart/mixed of een content-disposition: attachment?
Ik kan geen manier verzinnen om dit netjes op te lossen, aangezien ik standaard de text/plain toon (i.v.m. XSS). Er kan natuurlijk wel gekeken worden of er een deel multipart/mixed in aanwezig is binnen de container multipart/alternative, maar is er geen nettere manier?
Graag jullie ideeën.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| Content-Type: multipart/alternative; boundary="Apple-Mail-7-419225385" --Apple-Mail-7-419225385 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed; delsp=yes Content-Transfer-Encoding: quoted-printable Plain deel --Apple-Mail-7-419225385 Content-Type: multipart/mixed; boundary="Apple-Mail-8-419225385" --Apple-Mail-8-419225385 Content-Type: text/html; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable HTML deel --Apple-Mail-8-419225385 Content-Disposition: inline; filename="bijlage.pdf" Content-Type: application/pdf; x-unix-mode=0644; name="bijlage.pdf" Content-Transfer-Encoding: base64 Lange base64 string --Apple-Mail-8-419225385 Content-Type: text/html; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable Text --Apple-Mail-8-419225385-- --Apple-Mail-7-419225385-- |
Zoals je ziet is de hoofd content-type: multipart/alternative. Dat bevat vervolgens een deel text/plain deel (deel 1) en een deel 2: multipart/mixed. Dit tweede deel bevat de attachments.
Ik interpreteer multipart/alternative als: "The multipart/alternative subtype indicates that each part is an "alternative" version of the same (or similar) content, each in a different format denoted by its "Content-Type" header." (Wikipedia: MIME)
Ook volgens rfc2046 (http://www.ietf.org/rfc/rfc2046.txt): "In particular,
each of the body parts is an "alternative" version of the same
information."
Oftewel, technisch gezien heeft deze e-mail geen bijlages. Het tweede deel van de multipart/alternative bevat de bijlages.
Outlook toont de bijlages echter wel. Echter mijn viewer niet.
Feitelijk gezien heeft de mail toch geen bijlages? Die zijn toch alleen aanwezig bij een multipart/mixed of een content-disposition: attachment?
Ik kan geen manier verzinnen om dit netjes op te lossen, aangezien ik standaard de text/plain toon (i.v.m. XSS). Er kan natuurlijk wel gekeken worden of er een deel multipart/mixed in aanwezig is binnen de container multipart/alternative, maar is er geen nettere manier?
Graag jullie ideeën.
[ Voor 5% gewijzigd door Verwijderd op 16-06-2009 13:35 ]