This article describes how to install a typical mail system, and access it from a simple web application to provide a server based email client. It does not go into details about how to create a configure the mail system itself.
Install and Run Apache JAMES if necessary
This sample requires that you have an smtp server running. The real value in the sample is to demonstrate how to configure the mail session and connect to it to send a message. If you already have an smtp server configured and running then you can skip this step. However, if you don't, then Apache JAMES is a easy one to use for the test.
1. Download Apache Java Apache Mail Enterprise System (JAMES) from: http://james.apache.org/download.cgi
2. Unzip/untar file.
3. Run JAMES by executing: \james-2.3.1\bin\run.bat. You should see something like this:
4. Make sure Geronimo JavaMail module is started:
- Check Geronimo console System Modules for a component name beginning with org.apache.geronimo.configs/javamail. This module is present and started by default in the javaee5 instances of the server (both jetty and tomcat).
- If, for some reason, the module is not started or not present then you can start the module via:
- Use the Web Console: Applications > System Modules > Click 'Start' link beside the JavaMail module ID (you may have to enable expert mode)
- Use command line deployer:
- Stop the server. Modify <geronimo_home>\var\config\config.xml and set JavaMail module load attribute to 'true':
Test with Basic Web Application
Create a simple webapp containing the following files:
geronimo-web.xml: This deployable is using Geronimo 2.0's JavaMail component, so it needs to specify where to look. It does this under the <dependencies> tag. As Geronimo changes, these paths need to be changed accordingly to ensure that it refers to the same things. Under the <resource-ref> element, it is referring to a JavaMail session. This is what allows the developer to reference resources that resides on the server. The <ref-name> element is used in the web.xml so the two must be consistent. The <resource-link> element specifies the default Geronimo mail session.
Building and Deploying the Web Application
Download the sendmail application from the following link:
After decompressing the given file, the sendmail directory will be created.
Source Code for Sample
Please reference Samples General Information for information on obtaining and building the source for this and other samples
Build the Web Application
The sendmail folder will already contain an ear file ready to be deployed. However, you can still play with the source and build it yourself.
Use a command prompt to navigate into the sendmail directory and just give mvn install site command to build. It will overwrite the sendmail-ear-2.0-SNAPSHOT.ear under the sendmail folder. Any dependency on specific versions of javamail may be edited in the geronimo-web.xml deployment plan in sendmail-war/src/main.webapp/WEB-INF/geronimo-web.xml.
Deploy the Web Application
- Navigate to Deploy New from the Console Navigation panel.
- Load sendmail-ear-2.0-SNAPSHOT.ear from sendmail folder in to the Archive input box.
- Press Install button to deploy application in the server.
5. Test send mail webapp by going to: http://localhost:8080/sendmail
Fill up the form (From, To, Subject, Message fields) and click 'Send' button. You should get a similar message if the mail was sent successfully: