JAMM — an update to the Java Mail Manager
Ronald MacDonald <ronald@rmacd.com> v1.0, Sun Feb 12 21:24:03 EST 2012
So I’ve been using JAMM (the Java Mail Manager) for about two years now and have been making some changes along the way. Most of these have been insignificant alterations to the interface and a few changes to the logic of the template system (struts). I did think, however, that it would be worth releasing this and seeing what sort of use people can get out of it.
There’re still a few things I’d like to implement, but time necessitates I focus on studies… at least, saying that makes me sound as if I’m conscientious about my school work. But that’s quite another story.
What is JAMM?
Quite simply, it’s a front-end written in JSP which handles administration of LDAP-based virtual lookup tables. I use this alongside Postfix and Dovecot. JAMM comes with its own schema, which defines various hierarchies; domains fall within a ‘jvd’ (Jamm Virtual Domain) class, each of which may be delegated to and administered by a ‘sub-postmaster’. Aliasing is handled also.
Screenshots
What’s changed? Here’re some screenshots.
Changes
The setup documentation requires ACLs to be set up — as you would expect — on the LDAP server. Due to the fact OpenLDAP now uses LDAP-based configuration files, replacing the usual slapd.conf, rules have had to be modified very slightly. For sake of completeness, here is my ACL ruleset for running JAMM — allowing for the Dovecot user to read the userPassword field, to facilitate authentication. You’ll obviously need to change this to suit your own configuration:
In cn=config (my mail vhost base resides at o=mailsrv,dc=rmacd,dc=com):
olcAccess: {0}to dn.subtree="o=mailsrv,dc=rmacd,dc=com"
by dn.exact="cn=jadmin,dc=rmacd,dc=com" write
by * break
olcAccess: {1}to dn.regex=".*,jvd=([^,]+),o=mailsrv,dc=rmacd,dc=com" attrs=userPassword
by self write
by group/jammPostmaster/roleOccupant.expand="cn=postmaster,jvd=$1,o=mailsrv,dc=rmacd,dc=com" write
by dn="cn=dovecotuser,dc=rmacd,dc=com" read
by * auth
olcAccess: {2}to dn.regex="jvd=([^,]+),o=mailsrv,dc=rmacd,dc=com"
by group/jammPostmaster/roleOccupant.expand="cn=postmaster,jvd=$1,o=mailsrv,dc=rmacd,dc=com" write
by dn="cn=dovecotuser,dc=rmacd,dc=com" read
by * read
... [rest of non-mail ACL rules]
| ‘break’ on this rule will facilitate administrative access by ‘jadmin’ (i.e. Jamm Admin) user. | |
| You might not need this, I just put it here for completeness. |
Download and Install
Download the source package from the SF.net page at http://jamm.sourceforge.net/ and deploy the WAR file to your /webapps directory.
Once it’s all working, the base install should be available on your server under /jamm-0.9.6. Download jamm.patch and apply as usual: patch -p0 jamm.patch in the base directory of your Jamm installation.