Welcome!

ColdFusion Authors: Yakov Fain, Pat Romanski, Liz McMillan, Maureen O'Gara, Greg Ness

Related Topics: ColdFusion

ColdFusion: Article

inFusion Mail Server from On-Line Data Solutions

inFusion Mail Server from On-Line Data Solutions

Once they've learned the basics of ColdFusion, one of the first applications many developers will write is an e-mail program. By using CFMAIL and CFPOP, it is easy to create a basic application that will send mail to an SMTP service and retrieve mail from a POP service.

This type of functionality can be limited, however, and the only communications the developer can perform with the mail server is to send and receive e-mail. If the user information is stored in an LDAP directory, it can be accessed programmatically, but that certainly adds another level of complexity. Not to mention all mail server administration, such as creating users and domains, can only be performed by an administrator - typically not a developer - using a tool provided by the maker of the mail server.

Architecture You Can Understand
inFusion Mail Server from On-Line Data Solutions (ODS) changes what you may know, or may not know, about mail servers. Typically, a mail server stores data, such as user accounts, messages, and address books, in a proprietary data store that cannot be accessed by scripting languages, such as ColdFusion. Even when you use CFPOP to read messages, certain information, such as whether or not the message has been read already, is not accessible.

Instead of inaccessible data stores, inFusion stores all information relating to the configuration and administration of the mail server in a database - MS Access, MS SQL Server, Oracle, Sybase, and MySQL are all supported. Even the messages themselves are stored in the database, making the interaction between ColdFusion and the mail server much more useful.

Unlike most mail servers, all of inFusion's functionality is handled with scripting templates, such as ColdFusion, PHP, inline HTML, or Active PERL. That means, in this case, that ColdFusion is required on the mail server to process messages and perform administrative tasks. Included C++ custom tags are used to communicate with the mail server as opposed to using CFMAIL and CFPOP. A GUI tool is also included to set some of the service configuration settings (see Figure 1).

Full Mail Server Functionality
inFusion is a full-fledged e-mail server that allows many different types of functionality such as:

  • Assigning users to security groups, allowing them to perform only certain administrative tasks
  • Creating several different domains using the same mail server
  • Restricting the size of mailboxes within a particular domain
  • Restricting the size of messages received within a particular domain
  • Requiring optional LOGIN or CRAM-MD5 SMTP authentication
  • Restricting Relay and SMTP services to specified IP addresses
  • Returning delivery receipts for received messages
  • A scheduler tool that allows templates to be run in intervals as short as every few seconds
  • Indicating whether or not a message has already been read

    It would be impossible to list the complete functionality of inFusion in this review, but suffice it to say it is highly flexible. There are, however, some functions that are not available with inFusion:

  • Requesting delivery or read receipts for sent messages
  • Returning read receipts for received messages
  • Receiving message flags, such as priority, from received messages

    Open Source Templates
    When you purchase inFusion, you can download FusionMail, a complete e-mail server written using ColdFusion. FusionMail is freeware and the source code is not encrypted, making modifying the existing templates and creating your own quite easy. Since the existing templates are backwards compatible to ColdFusion version 2, you needn't worry about what version you are running.

    If you are using ColdFusion as the scripting engine, FusionMail must be installed in order to get the full functionality of your inFusion services. FusionMail comes with several components, including installation, administration, and an e-mail application. The administration interface allows you to modify all of the service system settings that can also be performed with the GUI tool as well as perform tasks such as creating domains and users.

    The e-mail application has a familiar interface (see Figure 2); a left-hand frame contains the available folders for the user and a link to the address book, one middle frame contains the contents of the selected folder, and another middle frame displays the current message. Messages that have not been read are bolded, and the current folder view can be filtered to view either read or unread messages or urgent or nonurgent messages. Existing messages can be selected and either marked urgent/nonurgent, moved to another folder, or deleted. The message display frame will display the details of the message, including all attachments associated with the message.

    The address book allows individual users to create nicknames and e-mail addresses for their contacts as well as enter additional personal information such as name, address, and phone number. Users can also add additional folders to aid in managing their messages.

    The message compose window contains fields for To, CC, BCC, subject, attachments, and the message body. The address book can be accessed from the compose window, and the selected contacts are copied to the appropriate fields using JavaScript. Multiple attachments can be sent with a single message and it is easy to remove an uploaded attachment before the message is sent. The message body field starts out as a standard textarea but can be changed to a WYSIWYG editor that allows you to create and view the message in HTML format.

    The look and feel of FusionMail's applications are not very sophisticated. Many developers will want to modify the templates and their functionality, but the fact that you can do that far outweighs the limitations of the existing templates. The current e-mail application framework is not compatible with Netscape 4.7 and the WYSIWYG editor is compatible only with Internet Explorer.

    Expanding the System
    But why stop there? You can certainly add your own tables to the database and integrate your own applications such as scheduling. In fact, inFusion can easily be the backbone of an intranet or extranet application.

    Flexible Pricing
    Since your company's mail server needs may differ from the next company's, ODS offers à la carte pricing options so you don't have to pay for more functionality than you need. Pricing is based on the maximum number of simultaneous connections needed. The Small Office Home Office (SOHO) bundle can be purchased for $500 and supports up to 10 simultaneous connections. Larger companies can purchase the Enterprise edition that supports up to 1,024 simultaneous connections for $4,950. There is a free single-connection developer edition that makes development even easier. If you don't need the full bundle of services (SMTP, POST, POP, Relay), you can purchase just the components you need.

    A Good Way to Go
    When it comes to flexibility and expandability inFusion Mail Server is a hands-down winner. The ability to actually create mail server functionality using ColdFusion, as opposed to just a pretty way to read and send messages, is a life saver. inFusion comes with ample documentation to help walk you through the mail server itself and the open nature of FusionMail makes it easy to extend the included functionality. Combining the extendability with the flexible pricing, ODS ensures that inFusion is a great solution for almost anyone who is using ColdFusion and looking for a fully integrated mail server system.

    SIDEBAR

    Vitals: inFusion Mail Server
    On-Line Data Solutions, Inc.
    1919 Middle Country Road * Suite 204
    Centereach, NY 11720 * Phone: 1-631-737-4668
    Fax: 1-631-737-9539 * E-mail: info@coolfusion.com
    Web: www.coolfusion.com

    Test Environment: HP Pavillon zt1180, 1.2GHz P-III, ColdFusion MX, 512MB RAM, Window XP Professional, MS SQL Server 2000
    Pricing: inFusion pricing ranges from $250-$4,950 based on the components purchased and number of simultaneous connections required. Free developer editions are available.

    Product Snapshot
    Target audience: Organizations that are looking for a configurable mail server that can be enhanced and administered using ColdFusion templates

    Pros:

  • Full mail server functionality
  • Flexible pricing
  • Extendable functionality
  • Multi-database support
  • Nonproprietary data stores

    Cons:

  • Can only be administrated using a Web interface
  • Lacks a few common mail server functions

    Server OS: Windows platforms
    ColdFusion: Version 2.0 and above, including MX
    Database Support: MS SQL Server, Oracle, Sybase, MySQL, MS Access

  • More Stories By Selene Bainum

    Selene Bainum is a software architect at INPUT.  She has been a ColdFusion and SQL developer for over 10 years and runs www.webtricks.com.

    Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.