IMAP c-client Function Descriptions


History
History of how c-client came about.

Overview
Read this before designing an application that uses c-client.

c-client Structures
Documentation of several important c-client structs which are used in, and returned by, c-client calls.

String Structures
Documentation of the concept of a "string structure", which provides random access to strings without requiring that the string be in memory.

c-client Support Functions
Documentation of support functions for c-client; these deal with c-client functionality.

Only mail_parameters() is of interest to most application developers. Advanced application developers, particularly for limited memory systems, may also need to know about the readfn_t, mailgets_t, mailcache_t, and tcptimeout_t function pointer types, and possibly also the mail_valid_net_parse() function.

Mailbox Access Functions
Documentation of functions which deal with mailboxes; listing, subscribing, creating, deleting, renaming, status inquiries, opening, and closing mailboxes.

Handle Functions
Documentation of mail stream handles, which provide protection for an advanced application which may have multiple pointers to a single mail stream. If a stream has a handle on it, closing the stream does not release its memory, so pointers to it in the application remain valid. Freeing the last handle will free the entire stream.

This is only of interest for advanced application developers.

Message Data Fetching Functions
Documentation on message data fetching in an open mailbox, including parsed representations of RFC-822 and MIME headers and message text. Also how to fetch message attributes (flags, internal date, sizes).

Message Status Manipulation Functions
Documentation on altering message flags in an open mailbox.

Mailbox Searching
Documentation on searching an open mailbox for messages which match certain criteria (e.g. "messages sent July 4 from Jones with text `Paris'").

Miscellaneous Mailbox and Message Functions
Documentation on other operations that would be used by an application but that don't fit into any of the above categories.

Date/Time Handling Functions
Documentation on functions that deal with date/time strings.

This is only of interest for advanced application developers and for implementors of new c-client drivers.

Utility Functions
Documentation on internal utility functions.

This is primarily of interest for implementors of new c-client drivers, but advanced application developers may also use some of these functions.

Data Structure Instantiation/Destruction functions
Documentation on creating and destroy c-client structures.

This is primarily of interest for implementors of new c-client drivers. However, application developers will need some of these functions to create and destroy structures which are used as arguments to various application functions.

Authentication Functions
Documentation on support for network protocol authentication functions.

This is only of interest for implementors of new c-client drivers which deal with authentication mechanisms.

Network Access Functions
Documentation on creating and destroy c-client structures.

This is primarily of interest for implementors of new c-client drivers which deal with a network. However, advanced application developers may need to use this information if they wish to insert their own layer into a network session.

Subscription Management Functions
Documentation on managing the local (client-based) subscription database file.

This is primarily of interest to advanced application developers.

Miscellaneous Utility Functions
Documentation on various useful utility functions, such as "make a copy of this string."

SMTP Functions
Documentation on posting email messages via SMTP protocol.

NNTP Functions
Documentation on posting netnews messages via NNTP protocol.

RFC 822 Support Functions
Documentation on public RFC-822/MIME functions.

This is primarily of interest for implementors of new c-client drivers and advanced application developers.

Operating System-Dependent Public Interface
Documentation on OS-dependent functions. With the exception of fs_get(), fs_give(), and fs_resize(), which should be called instead of malloc(), free(), and realloc(), these functions are primarily of interest for implementors of new c-client drivers.

Main Program Callbacks
Documentation of functions which the main program must provide as callbacks from c-client.

Driver Interface
Documentation of the driver dispatch vector and the functions which a driver must supply.

This is primarily of interest for implementors of new c-client drivers.

Driver Support Functions
Documentation of support functions which are called by drivers.

This is primarily of interest for implementors of new c-client drivers.