Free Software by Sam Clippinger -- LAFmessage

Author: Sam Clippinger <samc (at) lookandfeel (dot) com>
Copyright: ©2001-2003 lookandfeel new media
License: GNU LGPL
Current version: source binaries
Archived versions: Source packages
Binary packages
Documentation: Change Log
API documentation coming soon!
Win32: Microsoft Visual Studio 6.0 Runtime
Download from this site
MSDN article
Linux: RedHat 7.3 or later (other distributions should work; your mileage may vary)
Download from RedHat
Mac: OS X 10.3 or later (other versions should work; your mileage may vary)
Build target: Win32: In-process Win32 ATL COM Server and JNI library (.DLL)
Linux: Shared object library and JNI library (.so)
Mac: Dynamic library and JNI library (.dylib and .jnilib)

Source language: ANSI C++ (with Microsoft Visual C++ (ATL COM) on Win32)
Build environment: Win32: Microsoft Visual Studio 6.0 SP5 on Microsoft Windows 2000 SP2
Linux: RedHat Linux 7.3
Mac: OS X 10.3
Target platform: Win32: Microsoft NT Server 4.0 SP6a or Microsoft Windows 2000
Linux: RedHat Linux 7.3
Mac: OS X 10.3

LAFmessage is a feature-complete library for fetching, parsing, generating and delivering MIME-compliant email messages. It has C++, JNI (Java) and Win32 COM APIs.

For generating mail messages, LAFmessage provides an object-oriented API that represents all the pieces of a message and allows the caller to assemble them in (nearly) limitless combinations to programatically reproduce any feature that is to be found in interactive mail clients (and a few that aren't!). These include:

  • RFC 822-compliant (non-MIME) plain text email.
  • RFC 2045-compliant (MIME-compliant) plain text email.
  • RFC 2045-compliant (MIME-compliant) HTML email.
  • RFC 2045-compliant (MIME-compliant) attachments, both external and embedded.
  • RFC 822-compliant user-defined header fields.
Messages can also be parsed from RFC 822 or RFC 2045 format into the same object structure to allow programmatic parsing of message content, saving of attachments, forwarding of whole messages, etc.

For fetching and delivering messages, LAFmessage provides the following features:

  • RFC 1939-compliant POP3 system for connecting to arbitrary POP3 servers, retrieving and deleting email messages. Downloaded messages are parsed into the object structure for programmatic handling or presentation to an end user.
  • RFC 821-compliant SMTP system for connecting to arbitrary SMTP servers, authenticating and delivering email messages. Messages may be delivered synchronously or queued within LAFmessage for asynchronous delivery. Delivery status is available during batch delivery and optimizations are available to speed delivery such as:
    • Multiple recipients per SMTP transaction -- greatly reduces network traffic and mail server load.
    • Multiple worker threads to deliver queued messages -- can greatly reduce delivery time.
LAFmessage has the capability to canonicalize strings to render strings safe for insertion into HTML, HTML TEXTAREAs, JavaScript and SQL statements.

LAFmessage presents several different APIs:

  • A COM interface for use from COM-aware environments on Win32 platforms
  • A JNI interface for use from Java applications on Win32 and Linux platforms
  • A C++ interface that can be used directly in new programs by simply including the necessary files on Win32 and Linux platforms

LAFmessage is completely thread-safe and suitable for use from ASP pages.

Planned features include:

  • An IMAP4 interface to allow fetching/manipulating email on an IMAP4 server.
  • A filesystem interface to allow reading/writing of mail stores to disk.
  • A database interface to allow reading/writing of mail stores to database.

This project is mirrored from