Hi guys - I've been working with roundcube mail for a while now and its a great piece of work. I would like to use the interface of roundcube mail for a project I'm working on. The project would require that roundcube function a bit like a pop3 client.
From what I have noticed in roundcube as in other IMAP email web clients that you are interacting directly with an IMAP email server. And the response times are too slow for my projects requirements - so I'm working on extensively recoding it such that:
When you login - the check new email function checks for emails and downloads all emails in your imap server to a database on your webhost and delete the emails on the IMAP server as they are downloaded. Roundcubemail would maintain almost zero interaction with the server with respect to moving, deleting, viewing emails as all the information would be retrieved from the database. I understand roundcube has a caching system but it just seems fine for sorting messages.
I've noticed all the imap connections related functionality is handled by the rcube_imap object. So my idea is to rewrite all of the imap access functions so they read and retrieve information directly from the database and the only function that interacts with the mail server would be the check recent emails and that too on a periodic basis it would check and retrieve emails and download the emails to the database and remove them form the online email server.
If anyone could give me any other tips and points on what else I should look out for it would be greatly appreciated.
I've noticed that rcmail sorts and retrieves messages based upon the UID and the uid I have noticed is not a static variable but changes to represent the order of the emails in the mailbox. Any ideas on how I could work around this technicality? I'm thinking of using an auto incremented value instead - if anyone has a better idea I would like to hear.