INTRODUCTION

Open WebMail is a webmail system based on the
Neomail version 1.14 from
Ernie Miller.
Open WebMail is designed to manage very large mail folder files in a memory
efficient way. It also provides a range of features to help users migrate
smoothly from Microsoft Outlook to Open WebMail.

FEATURES for Users

Auto Login

Each user can determinte if he want to enable the auto login feature
in Open WebMail. When enabled, the user don't have type his username
and password in every login to Open WebMail.
Open WebMail will do this automatically for him. However, for security
reason, the auto login feature will be actived only if user doesn't log
out in previous session and the previous session is still not timeouted.
Further more, the sysadm can limit the range of IPs that are allowed to
use the auto login feature.

Multiple Languages/Multiple Charsets

Open WebMail is currently available for more than 30 languages, and it is quite easy
to add new language to Open WebMail if yours is still not supported.
For languages with more than one charsets, Open WebMail will choose one as the default
charset for the language. If a message is written with charset other than the
default, it will be converted to the default charset automatically.

Strong MIME Message Capability

Open WebMail has very well support for MIME messages. While most webmail
packages present MIME messages poorly compared to traditional POP clients,
Open Webmail presents MIME messages in an attractive format comparable to
that presented by Microsoft Outlook. Either inline or uuencoded attachments
are supported.

In addition to the presention, Open WebMail also allow user to
compose complex HTML messages with inline attachments or external attachments.
A friendly WYSIWYG editor
HTMLArea 3.0
has been built into Open WebMail, the user can write HTML messages conformtably
and easily without any knowledge of HTML tags. This HTML editor can be used on IE5.5+
for Windows or Mozilla1.3+ for all platforms :)

Full Content Search

Full content search with regular expression support is provided. When a user
enters a keyword in the search box, the scope of the mail folder is limited
to the keyword related messages. This means the user can use the sort or
static functions on the search result. The scope limit is released when the
user selects another folder or refreshes the current folder.

Draft Folder Support

This feature enables the user to write a message in a number of stages,
even over several days. The user can save an unfinished message into the
draft folder and continue editing at any time.

Confirm Reading Support

The user can request a 'confirm-reading receipt' for each message sent. When
the message is read by the recipient, a receipt will be sent back to this user.

Spelling Check Support

The spelling check in Open WebMail is very user-friendly and powerful: It
makes suggestions for mis-spelled words, and the user can correct
the errors very easily by selecting one of the suggestions from a
drop-down menu.

vCard compliant Addressbook

The addressbook is greatly improved by Alex
Teslik since 10/30/2004. The new system implements a completely
vCard compliant system that is extendable and modular. vCards can
be exchanged with any contact software out in the mainstream. This
brings OpenWebMail up to date with current address technology and
allows sharing of addressbook information among users.

POP3 Support

Multiple POP3 accounts can be defined, allowing a single user to fetch mails
from a number of mail servers. All messages fetched will be stored in the
INBOX folder. Should the fetch operation exceed 10 seconds (due to a slow
link or large message for example), the operation will be put into background
to avoid an http timeout.

Mail Filter Support

Multiple filter rules can be set to move or copy incoming mails to different
folders automatically or even delete them directly. The user can categorize
mails from a specific person or spammer, and identify 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, messages will stay in
the INBOX until the user reads their mail with Open WebMail. 'finger' or other
mail status check utilities may report new mail incorrectly, since they are not
aware of filters: A command tool 'openwebmail-tool.pl' is provided for use as
finger replacement, which performs mail filtering before reporting mail status.

Open WebMail can use the SpamAssassin
as the external spamcheck module to scan messages fetched from pop3 servers
or all incoming messages. The SpamAssassin
will determine a spamlevel for each scanned message based on its content.
The user can define a spamlevel threshold for all his messages in Open WebMail,
any message with spamlevel more than this threshold will be moved from INBOX to the
SPAM folder automatically.

Open WebMail also supports the Spam/NotSpam Learning through the sa-learn program
in SpamAssassin. In case the spamlevel determined by SpamAssassin is not very appropriate,
the user can train the system by telling it to learn the messages as Spam or NotSpam.

Open WebMail can use the ClamAV as the external
viruscheck module to scan messages fetched from pop3 servers or all incoming
messages. If a message or its attachments is found to have virus, Open WebMail will
move the message from INBOX to the VIRUS folder automatically.

Calendar with Reminder/Notification Support

The user can keep track of their appointments, meetings, birthdays, whatever,
with the build-in calendar in Open WebMail. This calendar provides several
views, including year view, month view, week view and day view, so the user
can browse their scheduled events very easily.
There is also reminder support for scheduled events, user can specify the days
that the reminder should look ahead and the first 5 upcoming events will be
displayed in the top of mail folder view.
If the user want the event reminder to be available outside the webmail system,
he can also specify a notification email address, eg: the one used by mobile phone,
for each scheduled event, so he can get notification of these events on his mobile phone.

Webdisk Support

The webdisk module provides a web interface for user to use his home
directory as a virtual disk on the web. It is also designed as a
storage of the mail attachments, the user can freely copy attachments
between mail messages and the webdisk.

The / of the virtual disk is mapped to the user's home directory,
any item displayed in the virtual disk is actually located under the
user home directory.

Webdisk supports basic file operations, eg: mkdir, rmdir, copy, move, rm,
file upload and download. Download of multiple files or directories is supported,
webdisk compresses the files into a zip stream on the fly in the transmission.
It also handle many types of archives, including zip, arj, rar, tar.gz,
tar.bz, tar.bz2, tgz, tbz, gz, z.... The user can compress, decompress or list
the contents of archives without copying them into his computer.

HTTP Compression

Open WebMail supports compression of HTML content over HTTP.
With compression turned on, the average page size has been reduced for
over 80%. This feature effectively reduces the use of nework bandwidth
between the client computer and the webmail server and is very useful
for users with slow connection to the webmail server, eg: dialup users,
PDA users.

FEATURES for System

Fast Folder Access

Folder access performance is greatly improved through the use of dbm (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. The dbm
cache eliminates the scan of an entire folder for every access, a significant
benefit when dealing with a large folders. The dbm is automatically synchronized
with any changes to the folder itself; the dbm update is incremental if the
folder modification is done by the Open WebMail application itself.
The dbm will however be recreated when a folder is found to have been changed
by an external program.

Efficient Message Movement

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 group of messages
between two folders. The routines for message update and movement have been
totally rewritten so that minimal movement occurs, with correspondingly minimal
memory utilization.

Smaller Memory Footprint

Much effort has been put into optimizing Open WebMail's memory utilization. The
memory footprint of Open WebMail is much smaller than its predecessors when
dealing with messages with large attachments (e.g. a 20MB document), as a result
of which the application now runs smoothly on a medium sized machine, (e.g. a
Celeron 300 with 128MB RAM).

Graceful File Lock

Since a mail folder may be used by multiple programs simultaneously, it is
necessary to lock the file before accessing the folder. Open WebMail uses a
blocking lock with a timeout limit of 60 seconds. It gives the lock a better
chance of success than a nonblocking lock, which returns an error if the lock
can not be acquired immediately. Open WebMail also supports locking by dotlock
file to ensure that the file locking operates correctly on platforms operating
with an incomplete implementation of NFS lockd.

Remote SMTP Relaying

With the help of Net::SMTP module, openwebmail can talk SMTP to SMTP daemons
on either localhost or remote machine. This gives openwebmail the better
compatibility with various SMTP daemons. The system administrator also has
more flexibility when designing the mail service system.

Various Authentication Modules

Various authentication modules are directly available for openwebmail,
including auth_unix.pl, auth_ldap.pl, auth_mysql.pl, auth_pgsql.pl and
auth_pop3.pl, auth_vm-pop3d.pl.
With these modules, openwebmail can be integrated with other systems easily.

PAM support

Openwebmail can also use other sources for authentication through the PAM
(pluggable authentication module). Ex: NIS+, NIS, LDAP, Radius.... Solaris 2.6,
Linux and FreeBSD 3.1 are known to support PAM.
For more information about PAM, please see
http://www.kernel.org/pub/linux/libs/pam/

Virtual Hosting

You can have as many virtual domains as you want on same server with only one copy
of openwebmail installed. Open Webmail supports per domain config file.
Each domain can have its own set of configuration options, including domainname,
authentication module, quota limit, mailspooldir ...

User Alias

Open Webmail can use the
sendmail virtusertable for user alias mapping.
The loginname typed by user may be pure name or name@somedomain. And this loginname
can be mapped to another pure name or name@otherdomain in the virtusertable.
This gives you the great flexibility in account management. For example,
you may have john for different domains by actually mapping them to
different real user ids.

john@domain1.com john1
john@domain2.com john2
john@domain3.com john3

Pure Virtual User Support

Pure virtual user means a mail user who can use pop3 or openwebmail
to access his mails on the mail server but actually has no unix account
on the server.
Openwebmail pure virtual user support is currently available for system
running
vm-pop3d
+ PostFix.
The authentication module auth_vdomain.pl is
designed for this purpose. Openwebmail also provides the web interface
which can be used to manage(add/delete/edit) these virtual users under
various virtual domains.
Kevin L. Ellis has written
a tutorial for openwebmail + vm-pop3d + postfix for this.

Per User Capability Configuration

While options in system config file(openwebmail.conf) are applied to all users,
you may find it useful to set the options on per user basis sometimes.
For example, you may want to limit the client ip access for some users or limit
the domain which the user can sent to. This could be easily done with the per
user config file support in Open Webmail.

There are too many other small enhancements to mention. You may choose to find
them by yourself...

AUTHENTICATION MODULES

Open Webmail has the following modules to support different types of authentication:

Thanks to Sam Horrocks.
who wrote the SpeedyCGI
package, which is a perl accelerator by making script resident in memory.
It improves the performance of Open WebMail for 5x-10x speedup.
Sam also provided the fix for setuid scripts to us, so Open WebMail
can be used with SpeedyCGI on Solaris.

Thanks to interactivetools.com.
who wrote the great
HTMLArea
editor, and released it under BSD like licence. The HTML message composing
support in openwebmail is based on this wonderful product.

Thanks to Emir
Litric for his great works of art. He made all the great
3D icons and the many fancy styles in Open WebMail, and maintained
the doc/RedHat-README.txt. He is now one of the authors of Open
Webmail.

Thanks to Dattola
Filippo, who wrote the advanced search module and stationery
module in the openwebmail. He also wrote the patch to support
mark read operation on whole folder, save message to draft if
sendmail error and fixed the bug that the ' and \ chars in filterrule
will be eat by javascript

Thanks to Bernd
Bass, who wrote the vdomain module which can be used to
manage the vm-pop3d/postfix virtual domain users.

Thanks to Scott
Mazur who has written the openwebmail-vdomain.pl to add
the forward, autoreply and vdomain_mailbox_command support for
vdomain users. He also made a lot changes to the core system
for better performance.

Thanks to Alex
Teslik who has implemented the new vCard compliant addressbook
system for openwebmail, he also greatly improved the web calendar
by writing the new dayview code, item update routines and DHTML
popup calendar support.

Thanks to Norvasen
who has had hosted hardware, DNS and bandwidth for openwebmail.org
for over 18 months.
Thanks to Pentecost Inc.
for their consulting expertise and operational support.

Thanks to Russ
Reese, the login alias/mapping is based on his patch code
and idea.

Thanks to Dugal
James P., who submitted the patches for PAM support, automated
DST adjustment, internal msg detection on Solaris dtmail, disallowed_pop3servers
option, fix for passwdfile in NIS+, fix for user homedir in
sun automounter and fix to the content-type header error in
attachment downloading.

Thanks to Raul
Monferrer, who submitted the patch for multiple dictionaries
support in spellcheck.

Thanks to James
Dean Palmer, who contributed the support for new mail headers:
In-Reply-To, References and X-Status. He also wrote a new sort
method "by thread" for folderview, added the 'A' flag display
of answered messages and made the from column more concise by
cutting it off at .AT. symbol if it is a pure address.

Thanks to Ivan
Cerrato, who contributed the LDAP authentication module(auth_ldap.pl)
and script add_user.pl
to add an user account on a LDAP server

Thanks to Volodymyr
M. Lisivka, who patched the openwebmail-spell.pl to check
vocabularies composed by characters other than English letters.

Thanks to Frank.AT.post12.tele.dk,
who has fixed a lot of bugs in checkmail.pl so it can work correctly
with server of pure virtual user configuration. He also provided
the idea and code for disable_embedded_CGI option and suggested
the use of $ENV{SCRIPT_FILENAME} so *.pl can find required modules
automatically

Thanks to Chris
Heegard, who provided the information of how to use openwebmail
on Mac OS X and suggested the use of wrapsuid.pl
to generate C wrappers for suid scripts.

Thanks to A.Johnson
Jeba Asir, who fixed the hang problem in attachment uploading
caused by a bug in encode_base64() in mime.pl

Thanks to Koppi,
who fixed the bug related to the variable localization behavior
in 'foreach' statement.

Thanks to Oliver
Schindler, who helped to debug the insecure dependence error
due to tainted variables

Thanks to Veselin
Slavov, who contributed the PostgreSQL authentication module
(auth_pg.pl, pgsql interface) and submitted the patch to add
selection menu of logindomain at login

Thanks to Kelson
Vibber, who fixed a serious bug in auth_ldap.pl, a bug in
smiley code in readmessage and added %1 variable support to
virtusertable

Thanks to Trevor
Paquette, who made fix for option domainname_override and
folderusage_threshold and the auth_module auth_unix_cobalt.pl
for Cobalt server.

Thanks to Andrea
Partinico, who made the mkcool3d_en.sh and mkcool3d_it.sh
under uty/, which can be used to generate the Cool3D iconsets
for different languages. The Cool3D.Large.English and Cool3D.Italian
is made with these scripts.

Thanks to Neil
Inns, who donated the openwebmail.con domainname to this
project.

Thanks to Ralf
Becker, who submitted the patch that added preliminary subdir
support to mailfolder.

Thanks to James
Briggs, who provided the great help in testing and debugging
the charset conversion for Japanese language.

Thanks to Isam
Ishaq, who provided suggestions and helped openwebmail to
support languages in RTL(right-to-left) mode, eg: Arabic, Hebrew.

Thanks to Javier
Smaldone who provided the enhance code to addressbook popup
window. The user can set default filter for listed entries,
and the checked entries will be remembered even after filter
statement is changed.

Please DO NOT email questions/problems to openwebmail.AT.turtle.ee.ncku.edu.tw
or the authors directly, they will be just simplely ignored.
We would prefer to do the discussion on the
forum
thus the information could be shared by others.