We're not developing from the scratch. We're using Indy Components, an open source Component for Delphi with many Server and Client Components
for Internet Protocols. And there is also an IMAP Server Component I work with.
All I have to do is to work out the Events that were activated from an Client, getting the Information from the Store and give an (and here are my problems)
RFC valid Server responses. And I have to know the order of the incoming Events. But thats not really a problem because I put out an Message string of every possible Event in the Component, so I know wich Event comes next.
That is why I said there should be no problem for me writing an IMAP Server. I think the most difficult work is done. It's "only" understanding the RFCs and examples in there and the methods IMAP works with.
greetings
Antonio Cambule
Have you considered outsourcing an IMAP server for your software? Several people, including the Cyrus project and Maclean Sofware, offer suitable software.
See http://www.maclean.com/imap/home.html, for example.
Thanks for that site I'll show it to my boss but we develope in Delphi and the IMAP Server Engine is written in C.
I think it is not real difficult to write an IMAP Server so I think we get on going with our solution. The only Problem is
that having only the RFCs and no real other document means a lot of trial-by-error work. So I'm glad there is such an
mailing list like this. I have never seen people answering so fast and I use a lot of discussion board, mailing list etc.
You may consider me prejudiced since I would certainly like you to license my server engine -- and that is fair enough. However I will say that writing an IMAP server is neither an easy nor a quick undertaking. I reckon that I have put at least two solid years of work into mine and I found it a challenging task. And that is despite the fact that I have loads of experience writing servers.
Integrating my server code with Delphi should be no problem. The most obvious way would be to build the engine as a DLL.
Pete Maclean
