Soultaker schreef op 14 July 2003 @ 01:27:
Ik neem aan dat je je mailtjes ook in 'rauwe' vorm opslaat (of juist niet?) In dat geval kun je die attachments wel on-the-fly converteren naar binaire bestanden als de client ze opvraagt, en hoef je er dus in je database geen rekening mee te houden.
ik sla op het moment nog een dump op van de email, omdat het pas net draait en ik in het geval van een bug de complete mail nog wil hebben

De motivatie om het zo te doen, zou kunnen zijn dat het mail storage/transfer systeem niets met de inhoud van de mailtjes te maken heeft. Of die mailtjes nu gecodeerd, in het Nederlands geformatteerd, plain-text, of met attachments uitgebreid zijn, is vanuit dat deel van het systeem niet relevant.
Maar goed, misschien dat je om redenen van efficientie iets anders wilt.
ik snap je motivatie nog niet helemaal. maar zal de mijne ff toelichten:
Ik sla de email helemaal in stukjes op. Dus subject, aan wie, van wie, datum, etc. etc. Komt allemaal apart in de db. Het voordeel daarvan is dat je de email maar 1 keer hoeft te verwerken (bij het ophalen) en daarna in hapklare brokken tot je beschikking heb, wat al aardig wat performance winst geeft.
Daarbij heb ik naast het email systeem ook een soort intern-email systeem gemaakt. 'lokale' emails worden dus gelijk in de database gezet, wat de server ook weer ontast.
(het draait in een omgeving waarbij mensen moeten inloggen en hun email automatisch iedere 5 minuten opgehaald wordt als ze zijn ingelogd)
Door die attachments lokaal op te slaan win je vervolgens nog eens een keer performance als je emails wil forwarden, e.d. - je hoeft ze namelijk niet meer los te koppelen van de oorspronkelijke email. En ook bij het lezen van je email scheelt het natuurlijk aanzienlijk. het is veel efficienter om 1 keer die file op te slaan op schijf en daarna simpel een download linkje weer te geven, dan iedere keer weer die attachement loskoppelen van de email op het moment dat er iets mee moet gebeuren