IMAP idle support - WeOnlyDo Discussion board

IMAP idle support (General questions)

by bkv, Friday, December 16, 2011, 14:38 (4523 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 (4523 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 (4520 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 (4520 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 (4520 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 (4520 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 (4520 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 (4520 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 (4520 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 (4520 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