Non-Dairy Creamer (hereafter, NDC) is a software system for utilizing the Interactive Mail Access Protocol version 4 (hereafter IMAP) from within a Java application or Applet. NDC provides a layer of abstraction on top of the network protocol so application writers wishing to build mail reading capabilities into their Java programs (or Applets) may do so with a minimum of hassle.
NDC provides the application program with a set of Java objects which can be used without a detailed understanding of the IMAP protocol to access/manipulate mail messages and related entities such as mailboxes (folders). The NDC API provides objects such as Mailboxes, Messages, Mail Addresses, Body Parts (for multipart mail)etc. It is hoped that in a future version the NDC toolkit will be sufficiently abstracted from IMAP that it will not be necessary for application programmers to know anything about IMAP to use NDC.
For those of you not familar with the IMAP protocol, it does not provide the capability of sending electronic mail. That is the domain of RFC 822 and (in short) not my problem.
GIT.GVU.IMAP
and GIT.GVU.IMAP.Tests
. Both of
these have been developed using the Sun compiler and VM interpreter
and with the Java Developer's Kit version Beta 2. It will probably
work also on Beta 1 but probably not on the Alpha releases.
GIT.GVU.IMAP.Tests
is a simple command line
mailer that I am currently using as my mailer to make sure the NDC
works. Since I haven't been seriously screwed by it yet, I have some
reason to believe that NDC is free of the most serious bugs. To run the mailer you first need to have an imapd running on a system in your network. If you don't have an imapd see below. Now that you are running the imapd, you'll need to tell java where to look for its classes and the NDC classes. You set the environment variable CLASSPATH to a set of directories and/or zip files with the classes in them. (I haven't had much luck with getting things to work out of zip files in the CLASSPATH variable; if you get it work with NDC please send me mail.) As an example, I have the java system loaded into my ~/java director and I have the unpacked NDC distribution there as well. So, I set my CLASSPATH variable to be ~/java/lib:~/java. The first one is for the system defined classes which I have in a zip file (classes.zip) in the lib subdirectory. The second one is the path to the top of my heirarchy of class names, so there is a directory in ~/java called GIT which has a sudirectory called GVU, and so on.
Once you have this much set up, verify that you have java in your path and that it is the one associated with the classes in your CLASSPATH. Now try this command: java GIT.GVU.IMAP.Tests.Driver. If you get a prompt which asks you IMAP Server : you are in business.
To use NDC you'll have to be running a copy of imapd on your system. I have already compiled imapd for some popular operating systems around this building. If you would like to have one of my pre-compiled binaries, please just click on the operating system you are interested in.
Here are Mark Crispin's (author of the IMAP standard and the U. Washington server) instructions for installing imapd on your system.
UNIX INSTALLATION NOTES The imapd daemon should be installed in a system daemon directory, and invoked by your /etc/inetd.conf file with a line like: imap stream tcp nowait root /usr/local/etc/imapd imapd Note that different variants of UNIX have different versions of inetd, so you should verify the precise form of these commands (for example, some versions of inetd do not require the "nowait"). You may also have to edit your /etc/services (or Yellow Pages, NetInfo, etc. equivalent) to register this service, such as: imap 143/tcp
Click here for a mail buffer in your browser.