The first public release of the open-source SubEtha mailing list manager
is now available. Deployed on JBoss, SubEtha offers virtual domains, multiple email addresses per user, attachments kept on the server, pluggable mail processing filters, per-list role-based permissions, and more. SubEtha is a sophisticated mailing list manager, similar in many respects to the popular Mailman package.
SubEtha's features include:
- Very easy installation on Windows and Unix platforms
- A user-friendly web interface for all configuration management
- Virtual domains (ie list at foo dot com and list at bar dot com are separate lists)
- Users can have multiple email addresses and self-moderate messages from unknown addresses
- Intelligent attachment handling; attachments can be removed from delivered mail and replaced with a download link to the archives
- Pluggable, configurable message processing filters which can arbitrarily modify the inbound and outbound message streams. Example filters include attachment stripping, header munging, spam detection, and insertion of advertising
- Per-list role-based permissions
- One-step creation of basic list types (ie "Announce-Only List" or "Technical Support List"). The set of available types is pluggable.
- Searchable, threaded archives
- Users can reply to messages from the archives. They can click on a button and have the message resent to them normally.
- Intelligent VERP bounce processing
- Clusterable for nearly unlimited scalability
- Easy integration with any mail transport agent (MTA)
- EJB and SOAP interfaces for automation
- International characters in emails are properly passed through the system and rendered in the web interface
- RESTful, bookmarkable URLs
- A modular SMTP library that can be used outside SubEtha - see SubEthaSMTP
SubEtha is a three-tiered J2EE application using EJB3 and JMS. It is designed to deploy on JBoss and relies on numerous other open source projects including Hibernate, Velocity, Tagonist, and Lucene. The code is well-commented and designed to provide a tutorial of:
- Building a three-tiered middleware application using JBoss and EJB3
- A variety of entity relationships using Hibernate
- Using the Hibernate 2nd-level cache to nearly eliminate database hits
- Creating and using a Hibernate custom type
- Using JBoss Service POJOs
- Using JBoss Message-Driven POJOs
- Securing an application using J2EE security
- Integrating with JBoss JAAS-based security system
- Full text indexing using Lucene
- Using the world's simplest web framework, Tagonist (also described as a "laughably simple web framework")
- Validating HTML form inputs with Hibernate Validation
- Zero-effort form processing with the Propertizer
- Unit testing EJB systems with JUnit
This project is self-hosting. The code is considered safe for production use, however it has not yet been extensively tested in the wild. Futhermore, there are two major features missing: Fulltext searching of the archives has not yet been implemented, and the business tier has not yet been annotated for SOAP access.
of the application in action are available.
Message was edited by: firstname.lastname@example.org