About VisualMail

The inability to access your e-mail while you are away, was until now, one of the major problems. Configuring any conventional mail package to access your mailbox is annoying and sometimes impossible if your server is protected by firewalls, and why make your network unsecure disabling such protection in order to access your mail remotely?. Free Mail services such as Hotmail, force you to have an additional e-mail address and save your confidential mail on an untrusted server, something not very useful for most people.

That is why VisualMail was created, a fully featured web based mail software designed to enable any user to access his/her POP3/IMAP mailbox using a standard browser or web terminal.

With VisualMail there is no need to worry about configurations, firewalls, privacy or where you are, because it was designed with the security in mind, it runs on your server, you access it via web and you can customize it to fit your needs.

VisualMail supports unlimited users and works with UNIX mail servers as well as Microsoft Exchange and Lotus Notes Domino mail servers.

Choosing the right VisualMail version

VisualMail is available in two versions, "Standard version" and "Enterprise version". It's important that you understand the functional differences between the two versions in order to choose the more suitable one for your needs.

The standard version is a gateway to any POP3/IMAP4 mailbox, that fetches messages from a mail server and displays them in HTML format.

This version is more suitable for ISPs or companies where the users want to use VisualMail as as complement to their conventional software, for example, an user that is travelling and wants to check his email via web and then, when he is back home, downloads his mails using his conventional e-mail package.

The enterprise version is a fully featured mail program, that fetches messages from a mail server and stores them into an internal database, just like as Hotmail does. This version is more suitable for free mail providers (like Hotmail) or companies where the users want to use VisualMail as their conventional e-mail software, for example, an user that stores his mails on the VisualMail server and has access to them using a browser.

Features

Standard version features:

Enterprise version features:

 

Architecture Overview

VisualMail is written in C++ and its modular architecture makes it a scalable and multiplatform solution easily adaptable to new technologies.

All the data is handled by VisualMail as an object. All the objects are referenced with an Object identifier (also called Session identifier). Before processing an object, VisualMail checks the Object-ID against the Local Security Authority (called CSession) that validates if the user is logged in, if the session has not expired and if the user is allowed to gain access to the object.

The object accessed could be an attachment, an email address, a message or a particular action to perform.

All the internal data flow between the different modules is managed by the VisualMail Engine, these modules handle specific functions like interfacing with users or servers, and performing particular actions. Let's take the example of an user downloading an attachment:

  1. The user requests the attachment by sending its corresponding Object-ID.
  2. The CGIClass receives the request from the browser and converts it to a format understandable by the Engine.
  3. Once the object request is received by the Engine, it is validated against the Local Security Authority (CSession).
  4. If the object is successfully validated, the request is sent to the Folder Manager (CFolder).
  5. The Folder Manager accesses the requested file and sends it back to the Engine for further processing.
  6. The Engine receives the file and sends it to the requesting user.

All the objects are requested and validated using the same method, but they are handled using a different handler (CFolder in this example).

The most important objects are:

 

 

CGIClass: Handles the interaction with the user, it receives the data posted by the browser and processes it.

CSmtp: Handles the communication with the SMTP servers.

CPop3: Handles the communication with the POP3 servers.

CImap: Handles the communication with the IMAP servers.

CSocket: Handles the TCP connections used by the CSmtp, CPop3 and CImap modules.

CMailSrv: Interfaces the CPop3 and CImap modules and processes RFC-822 headers.

CMime: Handles MIME, UUENCODE and ISO-8859 encoding and decoding.

CConfig: Handles the system and user configuration.

CSession: Handles Object-ID requests and validation.

CSyslog: Handles logging.

CFolder: Handles database object access in the enterprise version.

CVFolder: Handles database object access in the standard version.