General Information
WeOnlyDo! COM ImapServer ActiveX control is a component that
can be easily integrated into your applications to provide full
IMAP4rev1 protocol server implementation. All you need to do is
to put it on VB form, call it's Start method and it's
immediately accepting connections by your clients! It fully
supports commands defined in RFC2060.
About IMAP protocol
IMAP stands for Internet Message Access Protocol. It is a
method of accessing electronic mail or bulletin board messages
that are kept on a (possibly shared) mail server. In other
words, it permits a "client" email program to access
remote message stores as if they were local.
IMAP's ability to access messages (both new and saved) from
more than one computer has become extremely important as
reliance on electronic messaging and use of multiple computers
increase, but this functionality cannot be taken for granted:
the widely used Post Office Protocol (POP) works best when one
has only a single computer, since it was designed to support
"offline" message access, wherein messages are
downloaded and then deleted from the mail server. This mode of
access is not compatible with access from multiple computers
since it tends to sprinkle messages across all of the computers
used for mail access. Thus, unless all of those machines share
a common file system, the offline mode of access that POP was
designed to support effectively ties the user to one computer
for message storage and manipulation. (taken from http://www.imap.org/).
Difference between POP3 and IMAP4
Difference between well known POP3 protocol and IMAP4 is
that IMAP supports access to multiple folders - while POP3 knew
only INBOX (one folder with messages). Instead of using your
local system to create folders and move received messages to
them for local archival, IMAP4 allows you to do the same - but
still for messages to remain on remote system. This way you can
access your messages from anywhere, using any client that
supports IMAP4 (even web based emails) and still have access to
*ALL* emails.
Backward compatibility to POP3 still exists - almost every
IMAP4 server have one folder called 'INBOX', and this
is the same folder (and only folder!) that you access when you
use POP3 protocol. Keep in mind that 'folder' is same
as 'mailbox' since UNIX keeps all emails in one file,
while we plan to keep emails in our samples as separate files,
but idea is the same.
INBOX folder is very important in this process. Because of
this, INBOX object should always exist in your code because
most clients will first try to access it! You might even add
this folder automatically when user logs in, just to make sure
client doesn't receive an error.
WeOnlyDo! Implementation of IMAP server
wodImapServer is IMAP4rev1 implementation as defined by
RFC2060, including SEARCH capabilities which are added in
version 1.2.0.0.
Since wodImapServer is COM object and not the full application,
there's few things developer should look after - simply
because COM objects cannot deal with information that should be
preserved between the sessions. Most important is to keep UID
information (UNIQUE ID) for folders and messages. If you do so
- wodImapServer will work flawlessly with any client that
connects to it. On each client action wodImapServer will fire
appropriate event where you can internally handle the action
and return positive or negative result. You should also deal
with message flags.
wodImapServer does not deal with message storage - you should
do it by yourself. It will deal with structures and references
to folders and messages - but actual contents of messages
cannot be handled by wodImapServer. Rather, it will depend on
your code when messages are accessed, hoping that you provided
properly formatted messages and proper flag information. If you
don't - it will not complain, but IMAP clients may...
You should consider all wodImapServer folder as virtual folders
- none of them doesn't necessarily exist on your system.
Each time wodImapServer requires list of folders, or list of
messages - event is fired to notify you to populate his
collections with appropriate information - and that's all.
You can keep messages in database, on external system, or
wherever you need - as long as you can provide necessary
information on wodImapServer's request.
NOTE: In DEMO version you cannot change
GreetingMessage property, and cannot Deny user in Connected
event.
|