Open WebMail is a webmail system based on the Neomail version 1.14 from Ernie Miller. While the Neomail has a great user interface and many neat features, it is somewhat slow in handling big folder files and has large memory usage. Open WebMail is targeted on dealing with very big mail folder files in a memory efficient way. It also provides many features to help users to switch from Microsoft Outlook smoothly. Open WebMail has the following enhancements:
The folder access is greatly improved by using dbm (dbm is a simple database provided by perl). When a mail folder is selected in the folder view, Open WebMail will parse the mail folder file and cache the parsed result to a dbm. This dbm is reused whenever the user wants to access the folder. This dbm cache eliminates the scanning of whole folder file every time, which makes a big difference when dealing with a large folder file. In case there are any change in the folder file, the dbm will be automatically updated. The dbm update is incremental if the folder modification is done by the Open WebMail itself. The dbm will only be recreated when a folder is found to be changed by other programs.
The size of a message will be slightly increased after it is read at the first time because of status change. A large movement of messages may be introduced due to the size change. Also, the user may want to move a bunch of messages between two folders. The routines for message update and movement are totally rewrite so that only necessary movement will be made in a very memory efficient way.
Many efforts have been put in optimizing the memory usage of Open WebMail. The memory footprint of Open WebMail is much smaller than its ancestor when dealing with messages containing large attachments (ex: a 20MB attachment). It runs smoothly on a medium sized machine now. (ex: Celeron 300 with 128MB ram).
In additional to the 'move' operation on messages, Open WebMail supports 'copy', 'delete' and 'download' operation on messages.
Since a mail folder may be used by multiple programs simultaneously, it is necessary to do file lock before accessing the folder. Open WebMail uses a blocking lock with timeout limit 30 seconds. It gives the lock a better chance to success than a nonblocking lock which returns error immediately if it can not get the lock. Open WebMail also supports locking by dotlock file which ensure the file locking will work on platform with incomplete NFS lockd implementation.
Full content search with regular expression support is provided. When user enters a keyword in the search box, the scope of a mail folder will be limited to the keyword related messages. This means the user can use the sort or static functions on the search result. The scope limit will be released when the user selects another folder or refreshes the current folder.
While most webmail packages have poor effect on displaying MIME messages, the Open Webmail gives you very fancy effect for that. You can get almost the same output for MIME messages as you would get on Microsoft Outlook. It does this through supporting unlimited levels of attachments and cid object cross-reference inside attachments. Open WebMail also supports uuencoded block inside messages, it displays those uuencoded block as they were normal attachments.
This feature enables the user to write a message by several times even several days. The user can save the unfinished messages into the draft folder and continue the editing at any time. It would be very convenient when you are writing a long mail.
Multiple POP3 accounts can be defined at the same time to fetch mails from various mail servers. All pop3 messages will be stored at the INBOX folder. In case the pop3 fetching takes more than 10 seconds (ex: slow link or large messages), it will be put into background to avoid http timeout.
Multiple filter rules can be set to move/copy incoming mails into different folders automatically or even delete them directly. The user can categorize mails from specific person, mails from spammer or mails containing viruses very easily by defining rules of sender, receiver, SMTP relay, subject, body or filename of attachments.
Since mail filtering is activated only in Open WebMail, which means messages will stay in the INBOX until user reads their mail with Open WebMail. 'finger' or other mail status check utility may give you wrong information because they don't know about the filter. A command tool 'checkmail.pl' can be used as finger replacement. It does mail filtering before report mail status.
When the user pulls down the folderlist menu to select a folder, the counts of new messages and total messages of each mail folder will be displayed after the folder name to help the user to find out those folders with unread messages.
The user can request a 'confirm-reading receipt' for the message he sent. When the message is read by the receiver, a receipt will be sent back to this user.
There are too many small enhancements to mention about. You may need to find them by yourself...
Download: http://turtle.ee.ncku.edu.tw/openwebmail/download/
An earlier version of the dbm access and message movement was submitted to
the Neomail 1.20.
Because basically I have a different point of view for programming than Ernie,
I decide to release this version by myself. But I am thnankful to Ernie for
his great work of Neomail. If there is no neomail, there won't be Open WebMail here.
Nai-Jung
Kuo, Chao-Chiu
Wang, Chung-Kie
Tung
Distributed
System Laboratory
Department
of Electrical Engineering
National
Chung-Kung University, Tainan, Taiwan, R.O.C.
04/20/2001