IMAP idle support (General questions)
by bkv, Friday, December 16, 2011, 14:38 (4724 days ago)
Do you have any plans to support IMAP IDLE? http://en.wikipedia.org/wiki/IMAP_IDLE
Thanks,
Konstantin
Re: IMAP idle support
by woddrazen, Friday, December 16, 2011, 17:01 (4724 days ago) @ bkv
Hi,
IDLE is already supported inside wodImapServer. You can enable it if you set AllowIdling Property to True.
More help for AllowIdling Property you can find here:
http://www.weonlydo.com/ImapServer/Help/wodImapServer-AllowIdling.html
Hope I helped.
Regards,
Drazen
Re: IMAP idle support
by bkv, Monday, December 19, 2011, 13:05 (4721 days ago) @ woddrazen
Thanks for your reply.
The question is: How it is working in your implementation?
In this case IMAP server has to notify client about all changes happened in mailbox. What is your internal logic?
Brgs, Konstantin
Re: IMAP idle support
by woddrazen, Monday, December 19, 2011, 13:30 (4721 days ago) @ bkv
Konstantin,
We are using standard implementation of IDLE command from RFC2177:
http://tools.ietf.org/html/rfc2177
Is there any chance you can look at it and let us know if you find your answer there?
Let us know if you need more help.
Drazen
Re: IMAP idle support
by bkv, Monday, December 19, 2011, 13:51 (4721 days ago) @ woddrazen
How IDLE is working, that is clear.
Question is not how IMAP server working with IMAP clients.
You IMAP server is based on events. But in case of IDLE, WE have to notify client that something is changed. So, what is your IMAP server logic. How it gets information about what was changed, to transfer it to client?
E.G: There is a new message in mailbox (mailbox is in our data storage, and IMAP server doesnt know anything about it, we are just subscribed to its events). How IMAP server gets information about new message in the our data storage to transfer this information to connected IMAP client?
Re: IMAP idle support
by woddrazen, Monday, December 19, 2011, 14:42 (4721 days ago) @ bkv
Konstantin,
If you are asking what you need to do on wodImapServer side to enable IDLE then it's simple, you only need to set AllowIdling = True.
No other code you need to add. Of course mail client should support IMAP IDLE in order for it to work.
If you are interest how it works under the hood inside our component, I need to ask our developers about it.
Drazen
Re: IMAP idle support
by bkv, Monday, December 19, 2011, 14:51 (4721 days ago) @ woddrazen
Yes, I am interested in how it works under the hood inside our component. Could you pls ask developers about it.
As I am not able to see how it is possible to implement IDLE mode with existing events which IMAP Server component has.
Thanks in advanced.
Re: IMAP idle support
by woddrazen, Monday, December 19, 2011, 15:59 (4721 days ago) @ bkv
Konstantine,
Here is what I received from our developers:
IDLE command is send and response is not received from server until something happens (new mail, deletions...).
When something happens, server send response to client so client can react onto that response and procedure further.
Drazen
Re: IMAP idle support
by bkv, Monday, December 19, 2011, 16:06 (4721 days ago) @ woddrazen
Thanks for reply.
The logic of IDLE is clear.
When something happens, server send response to client so client can react onto that response and procedure further.
The question is how your IMAP server knows that something happens ?
As changes are happening in our data store, than how your IMAP server knows that something happens ?
Re: IMAP idle support
by wodDamir, Monday, December 19, 2011, 17:01 (4721 days ago) @ bkv
Konstantine,
I'm not really sure what's confusing you. However, imagine that you want to deliver a new message to client who is IDLE-ing.
You would use Add method to add message into Messages collection. wodImapServer is ofcourse well aware of that.
Regards,
Damba