Step -1.
Read the README file to make sure this is what you are looking for.
Step 0.
# perl Makefile.PL
# make
# make install
Step 1.
Edit Apache/App/Mercury/Config.pm for your site. Ignore the *_CLASS variables for now - you'll set them in the following steps.
Step 2.
Create the MySQL database and tables that will hold your users' messages. See the Apache::App::Mercury manpage under the section DATABASE SETUP. Update the DBI_* variables in Config.pm if necessary.
Step 3.
Modify your application's controller class (as in MVC design pattern), as described in the Apache::App::Mercury and Apache::App::Mercury::Controller manpages. Look at the source of Apache/App/Mercury/Controller.pm to give you an idea of how Apache::App::Mercury should be instantiated and its methods called.
If you wrote a new controller class for use only with Apache::App::Mercury (or extended and/or got to work the distributed Apache/App/Mercury/Controller.pm class), then set the CONTROLLER_CLASS variable (in Config.pm) to your new class name. You do not need to set this variable if your controller class is already loaded into your mod_perl server.
Step 4.
Write a user manager class for your application (or extend an existing class with the necessary methods), as described in the Apache::App::Mercury and Apache::App::Mercury::UserManager manpages. Set the USER_MANAGER_CLASS variable to your UserManager class name in Config.pm.
Step 5. (optional)
Subclass the Apache::App::Mercury::Display class and override its methods (and/or add new ones) for your specific site look. Set the DISPLAY_CLASS variable to your Display class name in Config.pm. (Sorry there is currently no documentation on Display methods - this will be done soon. For now you just need to look at the source if you want to extend or override the default Display class)
Step 6. (optional)
To enable e-mail auto-forwarding (sending e-mail notifications when messages arrive in users' mailboxes), install the file scripts/smtp_send so it starts/stops when your webserver starts/stops. Alternatively, you could run it under cron by setting $CROND = 1 in smtp_send, and adding a file with a line like so (to run once every 30 minutes) to your /etc/cron.d/ directory:
*/30 * * * * root /etc/httpd/lib/perl/smtp_send