> To get IMAP working there are major 3 pieces of work that need to be > done: > 1) Add attribute support to users (for both file: and db:)- This is > required for storing mailbox settings etc > 2) Ensure that all current mail repositories support attributes for > mail - mbox does not for example :)
Is it really necessary to be able to use any stores for imap? Enabling attributes from mbox style stores sounds like a lot of work. The messages need to be mangled to add additional headers for the attributes when saving and remove them when fetching a message. > 3) Link the repositories to the IMAP server > > My primary goal is to make sure that a user can use either POP3 or > IMAP4 when accessing their mailbox. The underlying storage mechanism > should not force a user to use a particular protocol only. Yes, that is very important. It is very common to see imap used to access mail through a webmail and POP to access it from a mail client. > I'm personally a bit busy at the moment, but by the time Noel has > finished the v3 update I will start rolling in some of my IMAP support > code. > > The IMAP protocol stack written by Darrell is my starting point. As > you may have noticed it only stores to memory at the moment. > > All I will do for implementation for the storage is use the existing > mail repository providers and add the mailbox name on the end as a > postfix. > For example (for use JW) > > Inbox (File JW) > James - (File JW.James) > Dev - (File JW.James.Dev) > Sent - (File JW.Sent) > Spam - (File JW.Spam) > > You get the idea :) > I won't be using '.' as the separator BTW. The IMAP rfc has some chars > that can't be used in folder names (I think) so I'll use those > instead. > There are no reserved or illegal characters. Each implementation can decide which delimiter character to use. The client will know the delimiter of the server by sending a LIST command with no additional argument. The server should then send ".INBOX" or "/INBOX" or whichever delimiter it uses followed by INBOX. See 6.3..8. LIST Command of rfc2060. The delimiter is usually "." or "/". It might break poorly written clients to use something else. -- C�dric Veilleux --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
