Frank Nørvig wrote:
> Så vidt jeg kan forstå i PHP manualen, så skal jeg bruge
> imap_fetchstructure til at se hvordan mailen er bygget op, men findes der
> ikke en forholdsvis simpel rutine til at sige "Dette er mail-body" og
> "Dette er attached fil", og derefter vise et link hvor man kan gemme filen
> lokalt? Jeg har prøvet at lede efter eksempler, men der er desværre ikke
> alt for mange der har webmail/imap kode liggende.
Jeg har! : ) (Se linket i min signatur). Den måde, jeg har gjort det på, er
følgende: Jeg fortolker brevet (manuelt, eftersom jeg ikke bruger PHP's
IMAP-funktioner til det) og finder ud af Content-Type mm. for hvert enkelt
del. Hvis det er rent tekst, bliver det vist til brugeren. Hvis det er
noget, der ikke kan vises til brugeren, så gemmes indholdet (f.eks. et
base64-encodet billede) i et skjult formularfelt. Der laves også links til
en viewAttachment.php-fil for hver vedhæftede fil. Linkene afsender så
formularen til viewAttachment, som via POST modtager den base64-encodede
fil, afkoder den, sender de korrekte headere og derefter indholdet.
Min måde at gøre det på - den med at gemme alle vedhæftede filer i et
skjult formularfelt på den side, der også viser selve ebrevet - er ikke
nødvendigvis den bedste løsning. Min metode har den ulempe, at HTML-siden
kan blive meget stor (og dermed tage lang tid at indlæse), hvis der er
mange, store vedhæftede filer. Metoden har til gengæld den fordel, at det
ikke er nødvendigt at læse/fortolke brevet to gange og belaste POP-serveren
ved at læse det hele to gange. Det skulle man nemlig gøre, hvis man på den
side, der viste brevets indhold, bare havde links til hver enkelt vedhæftet
fil: "viewAttachment.php?whichPart=2". I så fald skulle viewAttachment.php
så gå ind og fortolke brevet igen og vise den relevante del af brevet.
--
Jonas Koch Bentzen
http://understroem.dk/Net/Programmer