Swiftdove - IMAPWeb

1. Introduction

IMAPWeb is an Open Source web based IMAP client. It is used to provide a web based interface for mail users to access their e-mail account via the IMAP protocol. IMAPWeb is programmed as a combination of Java servlets and Java Server Pages (JSP) and will run on any platform that support these technologies. The use of JSP allows easier customization of look and feel by site administrator.
 

2. Prerequisites

  1. Java Virtual Machine that support Java 1.2 (also known as Java 2)
  2. Java Servlet container (Java Servlet 2.2)
  3. Java Server Pages (JSP 1.1)
  4. IMAP V4  & SMTP Server

3. Download

IMAPWeb can be downloaded here:

               IMAPWeb.tar.gz (298636 bytes)


4. Install

The installation procedure described here is assumes the deployment organization of web application described in Servlet specification 2.2 (chapter 9). Currently we only support the Apache Tomcat servlet containers v3.1 since this is the only platform that it has been tested on. Installation on other servlet platforms should work but is not described here at this time. Contributions in this area are welcomed.

After unpacking the zip file, you will see the following directory structure

                        IMAPWeb
                            |
                             -- src (dir)
                            |
                             -- imapweb (dir)
                            |
                             -- doc (dir)
                            |
                             -- License
                            |
                             -- make.bat
 

Simply copy the imapweb directory into the webapps directory within Tomcat. Add a context by adding the following line to the tomcat.conf configuration file:

ApJServMount /imapweb /root

This will create an imapweb contexts within tomcat. Next configure the servlet parameter by editing the IMAPWeb/imapweb/WEB-INF/web.xml file. You will see the following section

    <context-param>
      <param-name>imapweb.jsp.path</param-name>
      <param-value>/jsp</param-value>
      <description>
         This is the path to the jsp page
      </description>
    </context-param>

    <context-param>
      <param-name>imapweb.servlet.url</param-name>
      <param-value>/imapweb/IMAPWeb</param-value>
      <description>
         This is the absolute path to the servlet URL
      </description>
    </context-param>
 
 

    <servlet>
      <servlet-name>IMAPWeb</servlet-name>
      <servlet-class>com.scioworks.imapweb.IMAPWeb</servlet-class>
      <init-param>
        <param-name>mail.smtp.host</param-name>
        <param-value>robin.etherone.com</param-value>
      </init-param>
      <init-param>
        <param-name>mail.imap.host</param-name>
        <param-value>robin.etherone.com</param-value>
      </init-param>
      <init-param>
        <param-name>imapweb.domain</param-name>
        <param-value>etherone.com</param-value>
      </init-param>
      <init-param>
        <param-name>imapweb.login.page</param-name>
        <param-value>/jsp/login.jsp</param-value>
      </init-param>
      <init-param>
        <param-name>imapweb.timeout.page</param-name>
        <param-value>/jsp/session_timeout.jsp</param-value>
      </init-param>
      <init-param>
        <param-name>imapweb.session.delete.timeout</param-name>
        <param-value>36000</param-value>
      </init-param>
      <init-param>
        <param-name>imapweb.session.inactive.timeout</param-name>
        <param-value>12000</param-value>
      </init-param>
 

Please edit the appropriate parameters which are explained in the next section. Note that usually you only have to configure 3 parameters:

mail.smtp.host, mail.imap.host, imapweb.domain.

Other parameters need to be changed only if you want an installation that is significantly different from the one described here.
 

4.1 Initial Parameters

4.1.1 Context Parameters

Parameter  Name Example Value Explanation
imapweb.jsp.path /jsp The path where the jsp files can be found.
imapweb.servlet.url /imapweb/IMAPWeb The path where the servlet is mapped to. In the example the URL will be
http://<host>/imapweb/IMAPWeb

4.1.2 Servlet Parameters

Parameter  Name Example Value Explanation
mail.smtp.host smtp.scioworks.com The SMTP host
mail.imap.host imap.scioworks.com The IMAP host
imapweb.domain scioworks.com The domain name of the mail server
imapweb.login.page /jsp/login.jsp The JSP page that will be displayed to prompt a user to login
imapweb.timeout.page /jsp/session_timeout.jsp The JSP page that will be displayed when a user session has timed out.
imapweb.session.delete.timeout 36000 The duration (in seconds) in which an idle http session will remain in the system if not accessed. An idle session that has been idle for longer than this specified value will be flushed out of the system.
imapweb.session.inactive.timeout 12000 The duration (in seconds) in which an idle http session will be deemed as active. Any session that has been idle for more than this specified value are inactive. Inactive sessions are required to relogin to be reactivated

4.2 Deployment

IMAPWeb login page can be easily accessed by the following URL:
    http://<host>/imapweb/jsp/login.jsp


5. For Developers

5.1 Open Source

IMAPWeb is an Open Source project with a BSD type license. We welcome contributions from anyone interested in improving IMAPWeb.
Please send in patches to:


There are currently 2 mailing lists:

5.2 Technologies

IMAPWeb was built on Java technologies, namely:
 


This project was an experiment in the capabilities on these technologies and also server-side Java in general. The architecture chosen is popularly known as the JSP Model II development. IMAPWeb is a work in progress and as such there are still a number of basic features common in IMAP client that are still missing. One of the obvious one being support for mail attachments. The following are just some areas where we are looking at improving IMAPWeb:
 


6. Acknowledgment

Thanks to VA Linux Systems Inc and Sourceforge for hosting this site.