Implementing a DeliveranceMail server
In order to implement a DeliveranceMail
server you will have to go through the folowing processes.
- Install the DeliveranceMail server, the application can be easily
insalled on windows workstations with an automated installer.
For final deployment the DeliveranceMail server can be easily installed
on unix servers by unzipping the unix download and setting the environment.
- Look at the examples provided and ensure you have the server running
happily. You will need a Java JDK from Sun (not just the JRE).
- Design the email templates
- Design the templates and look and feel
- Create the HTML email templates
- Implement an email list, if you are firing individual emails you can
skip this stage
- Decide if the list is static or dynamic
- Decide if you want to implement a text file of addresses or a
database or have some other system, for example LDAP
- Implement an EmailLocation
object which fetches the list of addresses.
- If the list is static the list can be loaded when the object
- If the list is dynamic it should be loaded every time the
getAddresses() method is called
- It is not difficult to interface to existing Java applications.
- Generate the JSP's from the templates. The JSP's can be as complicated
as the application requires. Complex code in java beans can be created
or integratation with existing applications can be implemented. The
objects directly used by the JSP should be Serializable if they are
to be passed over RMI.
If the server will run in
process with the rest of the application, there is no requirement
that the object be Serializable.
- Decide when the emails are to be sent
- One or more JSP is sent to a list of addresses or a single address
when a trigger is fired.
- The application can fire the triggers when event happen such as
a user registering on the website.
- The application can fire the triggers itself at certain time intervals.
For example sending a weekly report to all staff with sales figures.
or updating intereted customers with additions to the catalogue.
- Configure the application and the triggers. This involves making
simple changes to the XML configuration files.
- For very complex schedules, such as every time a user has
a birthday, a trigger may have to be implemented that references
additional data. The application is easilly extensible by creteing
objects that conform to the API and entering the classes in
the config files
- Start the server.
- On windows the server can be run
as a service. This is not recommended for development since
the output logs are less descriptive.
- The server can be started in standalone mode by running one of
the included scripts.(If you are using custom java code remember
to include it in the classpath or just add the jars to the lib directory)
- The server could be started
with an existing application which requires graphical emails.
- Control the server
- Once running the server can be controlled with a Graphical console
that allows the scheduler to be stopped and started. The console
also allows triggers to be listed and manually fired. The console
is designed to run over a network but is not yet secure enough to
be run on the Internet. A simple servlet is included that could
be configured to control the server, if secure web based control
is required. The security could then be managed in the web server.
- Extending the server.
- The API for the server is designed to be extensible. By implementing
deliverance interfaces most of the components of the server can
be extended and then included by changing the configuration.
- DeliveranceMail is the first release of the Deliverance project,
a more generic messaging server. The Deliverence server is intended
to eventually be able to use generate other types of message such
as XML messages and send them using other protocols such as Secure
HTTP. Some of the extended features are included but undocumented
and untested. Feel free to try them out and use them for you purposes.
The DeliverenceMail release is intended as a working server for
graphical email messages. It is an example of the JSPTemplate
- Source code is included with the download for the really keen.
- Contributions, bug reporting, or reqests for features should be
sent to the sourceforge mailing
list for this project