General
Klementine is a Java program for remote mail retrieval, filtering and forwarding. Regular expressions can be applied to the mail header fields and thus characterize the messages as spam or ham. Identified spam will be deleted directly on the server. It is most useful for people retrieving their mail through dialup connections.
Features
- Runs in graphical mode or batch mode
- Supported UI languages: English, German
- Input protocols: IMAP, POP3
- Output protocols: STDOUT, SMTP (Port 25)
- Multiple accounts
- Multithreaded account processing
- Fast mail retrieval by strictly separating download and forwarding
- Guaranty to loose no mail
- Intelligent rules
- Use of email address book from LDAP server as whitelist
- Postpone rule for mails that did not match any rule
- Configuration files may easily be modified by scripts
- Hit statistic report
- Comprehensive online help
- Sophisticated logging (through log4j)
- Comes with installer package
Documentation
The application comes with a detailed user documentation and an API documentation.
Download
The Klementine Project is hosted by
You find the download section here.
Release Notes
The following changes appeared from release to release:
======================================================================== Release_0_17BLD003 Release date: 2006-04-11 Changes since last public release (0_16BLD010): Bug fixes: - Fixing the nasty bug that caused the application to hang in case a message with an empty "To:" field was detected. ======================================================================== Release_0_16BLD010 Release date: 2006-04-04 Changes since last public release (0_15BLD006): Modified: - The DupCheck rule now also check for equal recipients to decide if two mails are equal. - The source package no longer contains required jar files. There is a separate package now for the required jars. Bug fixes: - Correct treatment of seriously wrong from addresses - Correct termination in case another instance is already running ======================================================================== Release_0_15BLD006 Release date: 2006-03-11 Changes since last public release (0_13BLD016): New Features: - Logging panel in UI now functional - Online help created. Bug fixes: - Encoded header fields are now decoded before they are set into the table cell in the UI ======================================================================== Release_0_13BLD016 Release date: 2006-02-22 Changes since last public release (0_12BLD024): New Features: - Graphical User interface in its first version - Script to install initial configuration - Store result summary after each run for generation of history reports - Each (rejecting) rule may be configured to not delete a matching mail on the server but instead just leave it there. Such mails will appear in the "postponed" list and may be deleted in a subsequent run. ======================================================================== Release_0_12BLD024 Release date: 2005-12-30 Changes since last public release (0_11BLD020): New Features: - Prepend a + sign to a line in the "postponed" file to flag a postponed message to be accepted. Explanation: If messages that have no matching rule to accept them are postponed ("Download only white mails" is set to true) a file for each account is created that keeps a single line for each of such messages. If you do not want to add a pattern for those messages to your white rules you can just prepend a single plus sign (+) to the lines of those messages which you would like to accept. - New global option "SaveResults". If this is set to true the application will save the results of the filtering to disk. The various files will be written to the directory "results" underneath $KLEMENTINE_HOME. There will be a set of files for postponed, for accepted and for rejected messages. For each account one file will be created for each set. - A first version of the UI is available! But do not expect too much - it is just a beginning. Modified behaviour: - The file name for log4j configuration can no longer be specified in the configuration file but must be located in the directory KLEMENTINE_HOME (which is the directory from where the executable is started if not explicitely set)! Explanation: Since log4j is configured to watch its config file the application will react on any change to it. If you successively load multiple config files using the GUI it would mean to watch several log4j config files. This is not possible and as a consequence only the first log4j config file that is read will be honored and watched throughout the complete lifetime of the executable. - With the upcoming UI it is no longer possible to have everything in a single jar archive. I had to drop the beautiful tool "one-jar" and install a complete directory structure :-( ======================================================================== Release_0_11BLD020 Release date: 2005-11-07 Changes since last public release (0_11BLD017): - LDAP-Version 3 implemented (Version 2 is taken as fallback if Version 3 fails) Bugfixes - Explicitely closing transport connection after sending message. Depending on the SMTP server processing could take very long in case many messages were subject to be delivered. This was due to not explicitly closing SMTP connections. ======================================================================== Release_0_11BLD017 Release date: 2005-09-27 Changes since last public release (0.10B021): - Delivery to local store implemented. All messages are fetched from the remote store and buffered on the local disk. The delivery to the final destination (ResendTo) then takes place referring to the locally stored messages. This was done to circumvent problems that occur if you have a great amount of messages in several remote stores and the delivery to the local destination address is comparatively slow. In such cases the remote accounts sometimes lost their patience and closed the connection. With the local buffering the connection to the remote store can be closed relatively early. Of cause all messages that have been buffered locally will be deleted on the remote store (provided you have not set KeepOnServer to true). If your computer crashes or is shut down after the messages have been deleted on the server but before the delivery to the final local destination is finished special care must be taken to ensure that no message is lost. I guarantee that you can switch off your computer at every stage during processing and no message will be lost: Messages will not be deleted on the server until they have successfully been stored on the local disks. Messages that have been stored on the local disk will not be deleted until they have successfully been delivered to their final destination. Messages that have been stored locally and could not be delivered during the same run of the program will be resurrected and delivered in a subsequent run of the program. - "Download only white mails" introduced. There are two possibilities that tag a mail to be downloded from the remote server: Either it matches an accept rule or it does not match any rule. Often it is relatively simple to create quite good accept rules but it is very hard to catch all spam by deny rules. As my accept rules are rather mature 99% of the mails that do not match any rule are spam mails. If you set this parameter to true mails not matching any rule will not be downloaded but just their signature (From, Subject, and DateSent) is written into a file. Taking a short look at this report it is simple to give the "go" to delete these mails in a subsequent run. See the next paragraph for details. - "Delete postponed mails of last run" introduced. Mails that have been examined during the last run and did not match a rule are written into a file (provided the respective config parameter is set to true). If you have checked that those mails are all spam create a file named "deletepostponed.flag" in the directory that is given in the environment variable KLEMENTINE_HOME. You must also make sure that the user under which the Klementine application is run has write access to this file. If this file exists and is writable mails that have been postponed during the last run will be marked for deletion on the server. The file "deletepostponed.flag" will automatically be deleted so that no mails will accidentally be deleted without having checked the signatures of the postponed mails and deliberately having created the deletion flag file. If there is a mail among the postponed that is no spam you should adapt your accept rules so that this mail is matched. I suggest not to create the deletion flag file before the new rule has been verified. ======================================================================== Release_0_10BLD021 Release date: 2005-01-21 Changes since last public release (0_8): - Code redesign (preparation for graphical user interface) - Switch to JavaMail 1.3.2 - Improving robustness ======================================================================== Release_0_8BLD013 Release date: 2004-09-16 Changes since last public release (0_6): - Fixing problem with decoding subject line with newline characters - Fixing problems with malformed From fields - Improving robustness - Several minor bugfixes
License
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Klementine has been released under the Artistic License.
Contact
You can contact me through weber dot m at gmx dot de
. I appreciate every feedback. I will try to answer you as much as possible though you must know that I am extremely busy most of the time.