_J_A_K_A_R_T_A__J_A_M_E_S___M_A_I_L__S_E_R_V_E_R What is it? ----------- JAMES is a 100% pure Java server application designed to be a complete, portable and powerful enterprise mail engine solution based on currently available open protocols (SMTP, POP3, IMAP, NNTP etc). JAMES was formerly known as the Java Apache Mail Enterprise Server. Development Status for JAMES 1.2.2 ---------------------------------- SMTP Server: Stable POP3 Server: Beta IMAP Server: NNTP Server: Current Feature ---------------- These are some JAMES features: o complete portability: Apache James is a 100% pure Java(tm) application based on the Java 2 platform and the JavaMail 1.1 API. o protocol abstraction: unlike other mail engines, protocols are seen only like "communication languages" ruling communications between clients and the server. Apache James is not be tied to any particular protocol but follow an abstracted server design (almost like JavaMail did on the client side) o complete solution: the mail system is able to handle both mail transport and storage in a single server application. Apache James works alone without the need for any other server or solution. o mailet support: Apache James supports the Apache Mailet API. A Mailet is a discrete piece of mail-processing logic which is incorporated into a Mailet-compliant mail-server's processing. This easy-to-write, easy-to-use pattern allows developers to build powerful customized mail systems. Examples of the services a Mailet might provide include: a mail-to-fax or mail-to-phone transformer, a filter, a language translator, a mailing list manager, etc. Several Mailets are included in the JAMES distribution (see docs/Configuration.html). o resource abstraction: like protocols, resources are abstracted and, accessed through defined interfaces (JavaMail for transport, JDBC for storage in RDBMS's, Apache Mailet API), the server is highly modular and can reuse solutions from other projects or applications. o secure and multi-threaded design: based on the technology developed for the Apache JServ servlet engine, Apache James has a careful, security-oriented, full multi-threaded design, to allow performance, scalability and mission-critical use. o Currently JAMES support SMTP, POP3 and a simple remote administration facility. Planned Features ---------------- o IMAP support. o IMAP server side filtering. o Download remote inbox to your local inbox. o More powerful remote admin protocol and tool. o Extended set of Mailet to easily support most mail system request. o anything else you may want if you help us writing it :-) Requirements ------------ - JAMES.sar (required) - Phoenix server (Jakarta-Avalon-Phoenix) (required) JAMES distribution includes both required items. To recompile James from sources you should use org.apache.tools.ant and its needed packages (ant.jar, javac.jar, xml.jar). Up and working... ----------------- Step 1: installation. Download distibution. Extract all files in your favorite folder. You've probably done that if you are reading this file! Step 2: start phoenix. M$ users should just run /bin/run.bat. Unix users will find run.sh under the same folder - you may need to chmod +x run.sh. A JVM must be in the path. Phoenix will unpack the james.sar into apps/james. Note that port 1111 must be available for Phoenix to run (used by RMI server). Most UNIX systems require superuser privileges to open sockets below 1024, which includes the IANA-standard SMTP (on port 25), POP3 (on port 110), IMAP (port ) and NNTP (port ). You will get an error message with 'org.apache.avalon.framework.atlantis.ApplicationException: Failed to load block imapserver' or something similar if you have not got the right privileges. If you have the right privileges, you should see 'Phoenix 3.1a1-dev James James 1.2.2 Alpha Started IMAP Server plain:143 Started NNTP Server plain:119 Started SMTP Server plain:25 Started POP3 Server plain:110' Congratulations! You have James up and running. Step 3: Adding users Once James is running, telnet to port 4555. You will see somthing like: 'JAMES RemoteAdministration Tool 1.2.2alpha Please enter your login and password Login id:' The defaul id and password are both 'root'. These can be changed in the configuration file (see Step 4). To get help for the RemoteAdmin tool, type help. To add a user, type adduser [username] [password] . Eg: adduser test test Step 4: Test James Once you have some users entered, you can test James by sending mail to them. Note that for mail to get to your machine, you need MX records in the DNS system. You will see files materialise in apps/james/var/mail/inboxes. Retrieve the mail by configuring your POP client to get mail (inbound mail server) from James. Test outbound mail handling by configuring your client to use James smtp. (By default, you can only send mail from the machine on which James is running. This is to stop spam relaying. This can be changed in config file.) Trace out JAMES actions in /logs/*info.log. Action that will be taken by JAMES on incoming mail are configurated in the mailet pipe line (/conf/james.conf.xml). Look at it if you want to understand what's happening. Step 5: configuration. The configuration files are in apps/james/conf. For new users, the only elements you need to worry about are in config.xml. You probably want to change the root password in the remote manager section and to add your local network's IP address to the anti-spam mailet. Good luck :) Licensing and legal issues -------------------------- For legal and licensing issues, please look in the legal section of the documentation or read the LICENSE file. A licence covering the use of mm.mysql JDBC drivers will be unpacked into ./apps/james/SAR-INF/lib Thanks. The Jakarta Project http://jakarta.apache.org/