This is an old revision of the document!


Separate the message content from the body

update I've taken DBMail in a similar direction but using a very different approach and persuing a very different goal. This new setup is called mime-chunking and is also known as single-instance-storage (sis). In 2.3.x and beyond, messages are split into logical mime-parts and each part is never stored more than once in the database. Using this setup, the same attachment coming in is never stored in more than a single row, even when it's sent under a different filename. (PJS)

(original proposal below)

It looks like right now the content is stored in a single data field. It was already suggested to store header data like From and Subject for faster indexed searching and ordering. But how about taking it a step further:

How about taking everything out of the message body and just keep it as reference:

  1. From
  2. To
  3. Date Sent
  4. Priority
  5. Subject
  6. Attachments (seperate table)

I see the main potential of a db based mail server in the fact that you can put a nice web interface in front (rather than accessing it via IMAP/POP). In this interface you can then make innovative features as provided by GMAIL for instance. One feature I would like to see, is to have all Attachments stored Seperately. You can then search all attachments you have ever received, and perhaps also annotate them.

When the message body excluding attachments is stored in a field, it can also be bzip compressed to improve space usage (I think Wikipedia is doing this).

Taking this further additional features can be included such as staring a conversation as in gmail and stored searches (alias smart-folders) as known from Apple mail.app.


CK: I second this request. Separating the attachments from the message would make creating a webmail interface much easier. essay writing service

 
separate_msg_content.1312273469.txt.gz · Last modified: 2011/08/02 10:24 by brittneylandry
 
DBMail is developed by Paul J Stevens together with developers world-wide