IMAPFilter 2.6.15 - 14 Nov 2019
- Bug fix; try to setup both a CA file and path for SSL validations.
IMAPFilter 2.6.14 - 1 Nov 2019
- Bug fix; OpenSSL version mess up for SSL hostname validation.
IMAPFilter 2.6.13 - 17 Sep 2019
- Support for SSL hostname validation.
IMAPFilter 2.6.12 - 3 Oct 2018
- Support for Server Name Indication (SNI).
- The searching methods return values are described in the config man page.
- Example of using the enter_idle() function in the sample extend file.
IMAPFilter 2.6.11 - 19 Nov 2017
- Support for interrupting IDLE mode with SIGUSR1/SIGUSR2.
- New "persist" option to try to recover a connection indefinitely.
- New "range" option to limit messages included in a range.
- Bug fix; always close selected mailbox before check_status().
- Bug fix; closing of selected mailbox twice with fetch_message().
IMAPFilter 2.6.10 - 16 Dec 2016
- Bug fix; segmentation fault on some OpenSSL builds.
IMAPFilter 2.6.9 - 6 Dec 2016
- Bug fix; possible problem during STARTTLS negotiation.
IMAPFilter 2.6.8 - 26 Nov 2016
- Support building with OpenSSL 1.1.0.
IMAPFilter 2.6.7 - 7 Jun 2016
- A dry-run mode that disables all actions that modify data.
- Bug fix; handle IDLE untagged responses that are received in pieces.
IMAPFilter 2.6.6 - 23 Jan 2016
- Bug fix; print an error message if "ssl" has been set to "ssl3".
IMAPFilter 2.6.5 - 18 Jan 2016
- Possible to build again with OpenSSL when support for SSL 3.0 is disabled.
IMAPFilter 2.6.4 - 8 Dec 2015
- Support for OAuth 2.0 and the XOAUTH2 authentication mechanism.
IMAPFilter 2.6.3 - 30 Sep 2015
- Support for loading a default CA certificates file.
- A new has_unkeyword() method to search messages without a keyword flag set.
- Bug fix; double quotation around keyword sent by the has_flag() method.
IMAPFilter 2.6.2 - 30 Jun 2015
- Bug fix; drop connection on local certificate mismatch.
IMAPFilter 2.6.1 - 29 Jun 2015
- Support for loading the system's CA certificates from a file.
- Bug fix; flusing of standard output/error in a some cases.
IMAPFilter 2.6 - 16 Jun 2015
- Optimizations that vastly improve performance of the meta-searching
functionality, by making subsequent search requests limit their scope based
on the results already returned by previous requests (previously this was
the case only for the match_*() methods).
- Lua 5.3 compatibility (the codebase can still be compiled with versions 5.2
- A new "limit" option can be used as a work-around for problems that some
servers have with long requests.
- The documentation now clarifies how to make the client block indefinitely.
- Bug fix; the check_status() method now returns 4 numbers on error as
described in the documentation (just negative values in this case).
- Bug fix; flushing of default output on password prompt.
- Bug fix; program fault when very long requests were to be sent.
IMAPFilter 2.5.7 - 16 Nov 2014
- Support for automatic validation of SSL connections, using the operating
system's installed trusted CA certificates (usually from authorities that
are shipped with web browsers).
- A new "wakeonany" option makes it possible to end IDLE mode on any event,
not just on new messages.
- A new "reenter" option controls whether IDLE mode should be re-entered,
after the recovery of the session, which makes it possible to continue with
the execution of the next line in the configuration file.
- The documentation now mentions that the contain_*() methods do
case-insensitive searching (an IMAP limitation).
- The documentation now has a better explanation of the arrived_*() and
- Bug fix; the value returned by the copy method was incorrect in some cases.
IMAPFilter 2.5.6 - 27 Oct 2013
- Possible to build again with OpenSSL older than version 1.0.1 (was a
requirement for the previous release due to new protocols TLS 1.1/1.2).
- Support for reading the configuration from the standard input stream.
- New makefile dist target, which can be used to create distribution archives.
IMAPFilter 2.5.5 - 8 Jun 2013
- Work-around for some servers that send an unexpected APPEND response.
- The serial number of the certificates is taken into account, because some
servers send different certificates with the same subject and issuer.
- Details of the stored certificates are written to the certificates file, in
order to make it easier to distinguish each of them.
- Support for TLS versions 1.1 and 1.2 for secure connections.
IMAPFilter 2.5.4 - 9 Apr 2013
- Some server responses are now parsed less stricly.
- More detailed information is now printed when there's an error.
- Bug fix; various corrections in the recovery mechanism.
IMAPFilter 2.5.3 - 22 Jul 2012
- New implementation for international mailbox names.
- Bug fix; wrong variable name in one of the examples on extending.
- Bug fix; an OpenSSL compilation warning.
IMAPFilter 2.5.2 - 29 Feb 2012
- Persistent errors or connection failures are now ignored when running in
daemon mode, and a reconnection is attempted during the next loop iteration.
- Bug fix; problems with failure handling during login/logout.
IMAPFilter 2.5.1 - 27 Feb 2012
- Support for recovery of a session after a BYE response is received.
- Option to control in which cases a terminated session will be restored.
- Bug fix; a BYE response could sometimes get incorrectly ignored.
IMAPFilter 2.5 - 23 Feb 2012
- Support for recovery of a session when a network failure is encountered,
and other robustness improvements.
- Informational messages are printed also for the fetch and append methods.
- Lua 5.2 compatibility, while the codebase can still be compiled with
- The OpenSSL library is now a mandatory build requirement.
- Bug fix; unrecoverable login failures did not result in aborting of the
execution of the configuration.
- Bug fix; when messages were appended to a mailbox that did not exist, it
failed to create the mailbox and then retry the appending.
- Bug fix; misleading errors were printed on some SSL failures.
- Bug fix; protected call of the commands to execute in the daemon function
could hide important failures.
- Bug fix; the man page had an incorrect description of the -d option.
* Support for the old deprecated 1.x configuration format has been removed,
and the current 2.x format can only be executed from now on.
IMAPFilter 2.4.2 - 19 Jan 2012
- Bug fix; some ASCII characters in mailbox names were incorrectly converted
IMAPFilter 2.4.1 - 8 Dec 2011
- Bug fix; become_daemon() failure.
IMAPFilter 2.4 - 6 Dec 2011
- Support for non-ASCII mailbox names.
- New environment variable to set the configuration directory.
- Bug fix; parsing of some server responses was broken since the previous
- Bug fix; the match_field() method matched on the whole header field,
instead of only the header field body.
- Bug fix; debug file check caused printing of a misleading error message.
- Bug fix; typo error in a configuration man page example.
IMAPFilter 2.3 - 6 Aug 2011
- Support for appending/uploading messages to mailboxes.
- Debug file option now takes filename argument.
- New simplified configuration and building procedure.
- Bug fix; in some cases a mailbox was incorrectly assumed selected.
- Bug fix; in some cases server capabilities needed update after login.
- Bug fix; timeout problem with CRAM-MD5 authentication.
- Bug fix; some servers send non-ASCII characters in their responses.
IMAPFilter 2.2.3 - 6 Mar 2011
- Project moved to GitHub.
- Changed file and directory structure.
- The next UID is returned as an additional return value of check_status().
- All processing methods now return a boolean based on their success.
- Bug fix; a lost connection is now handled better by trying to reconnect.
- Bug fix; in some cases in IDLE a message had arrived but was ignored.
- Bug fix; in some servers the initial IDLE reply wasn't handled correctly.
- Bug fix; typo errors in the documentation.
IMAPFilter 2.2.2 - 23 Jan 2010
- Bug fix; a couple of errors in the extending examples file.
IMAPFilter 2.2.1 - 20 Jan 2010
- A global option for the IDLE refreshing interval was added.
- Bug fix; more detailed reporting when SSL socket errors occur.
IMAPFilter 2.2 - 30 Dec 2009
- Support for combining searching methods in multiple mailboxes at the same
or different accounts and processing of the results in bulk.
- Support for meta-searching that allows searching on the previous searching
- The processing and fetching methods were enhanced to reflect the new
changes and the documentation was updated.
- Global options for the message cache and the certificates were added.
- Bug fix; questions for certificates are not asked while in daemon mode, but
instead an error is printed.
* A different format is used for the returned structures of the searching
methods, due to the introduction of multiple mailbox searching and
meta-searching, and thus any configuration files that rely on them should
be updated. Consequently, the processing and fetching methods have been
also enhanced and the relevant documentation updated, and while these
changes are backwards compatible, an update of the configuration file is
IMAPFilter 2.1.2 - 3 Dec 2009
- Bug fix; cache for message parts didn't work correctly.
- Bug fix; documentation error.
IMAPFilter 2.1.1 - 24 Nov 2009
- Bug fix; global option timeout and enter_idle() didn't play well together.
IMAPFilter 2.1 - 23 Nov 2009
- Support for the IMAP IDLE extension (RFC 2177) through the enter_idle()
- Support for fetching of a message's body structure through the
fetch_structure() method, and of a message's specific body part through the
- Addition of a global option that controls the character set used for all
the searching methods.
- Bug fix; fetching of non-existent messages.
- Bug fix; no trailing end-of-line characters in the results of
IMAPFilter 2.0.11 - 20 Sep 2009
- Bug fix; fetching of messages with empty body.
- Workaround for problematic IMAP server sending non-compliant mailbox status
IMAPFilter 2.0.10 - 16 Feb 2008
- Bug fix; failed a great number (tens of thousands) of commands were
exchanged with an IMAP server.
- Bug fix; failed to fetch the body of some messages in some extremely rare
- Bug fix; the description for the contain_header() method was clarified.
IMAPFilter 2.0.9 - 26 Dec 2007
- Bug fix; the match_*() methods failed to match messages.
- Bug fix; the match_*() methods failed with an error when no messages
- Bug fix; note added in the documentation about the need to use double
backslashes inside of regular expression patterns.
IMAPFilter 2.0.8 - 23 Dec 2007
- Bug fix; on some platforms it is necessary to link against the math library.
IMAPFilter 2.0.7 - 22 Dec 2007
- Bug fix; the match_*() methods failed with an error message.
IMAPFilter 2.0.6 - 7 Oct 2007
- Bug fix; the search query that was sent with the select_all() method had an
incorrect format and this caused an error in some mail servers.
IMAPFilter 2.0.5 - 4 Oct 2007
- Bug fix; an error in the sample extensions file.
- Bug fix; typo errors in the manual page.
- The documentation was updated with details and examples on how to access
mailboxes inside folders.
- Examples were added on how to define composite filters that include
multiple searching rules.
IMAPFilter 2.0.4 - 27 Sep 2007
- Bug fix; the send_query() method didn't return the special form of table
that the rest of the searching methods did.
- An additional searching method has been added to search for keyword flags
- A new variable that was added to the Makefile makes it possible to set an
alternative environment for the installation path.
IMAPFilter 2.0.3 - 27 Jul 2007
- Bug fix; part of the program's functionality didn't seem to work at all.
(did nothing), due to problem when providing the results from searching
methods to processing methods.
IMAPFilter 2.0.2 - 30 Jun 2007
- Bug fix; message cache problem due to non-use of message UIDs.
IMAPFilter 2.0.1 - 29 Jun 2007
- Bug fix; character set problem with 1.x configuration files.
- Bug fix; typo errors in the documentation.
IMAPFilter 2.0 - 27 Jun 2007
- New, more powerful, feature rich and yet simpler configuration file.
- Easier object oriented view of accounts and mailboxes.
- Simpler approach to filters, with infix logical or/and/not operators.
- No more need to mess with server search queries.
- More and simpler functions instead of few and complicated ones.
- More feature complete interface that can now even manipulate mailboxes.
- Regular expressions integrated into the searching interface.
- Effective caching subsystem when fetching message parts.
- Can still read old version 1.x configuration files for compatibility.
- Lua 5.1 and the PCRE library are now requirements.
* The configuration file format has changed. The new format is not backwards
compatible, and thus it should not be mixed with the old format.
Nevertheless, configuration files that employ the old, and now deprecated,
format can still be read and executed as before.
IMAPFilter 1.3 - 13 Feb 2007
- Perl Compatible Regular Expression (PCRE) support.
- Compile against Lua 5.1 by default.
- Bug fix; program fault in some cases and when namespace prefix was empty.
- Bug fix; program fault on some platforms when running in verbose mode.
IMAPFilter 1.2.2 - 1 Aug 2006
- Bug fix; a mix up of connections could happen in certain circumstances,
when a hostname and/or username was a prefix of another hostname and/or
username respectively, or when the same hostname and username was used to
connect to a different port.
- Bug fix; the list()/lsub() functions parsed mailboxes/folders whose names
contained spaces incorrectly.
- The list() function now does not return the folder itself, when listing
mailboxes inside a specific folder.
- It is now possible to define new user keywords for messages inside a
mailbox, apart from the standard system flags.
IMAPFilter 1.2.1 - 9 Mar 2006
- Buf fix; program fault when using the fetch*() family of functions.
IMAPFilter 1.2 - 2 Mar 2006
- IPv6 support.
- Lua 5.1 compatibility.
- Bug fix; handle messages containing binary data.
- Bug fix; problems with CPU utilisation when the inactivity timeout timer
IMAPFilter 1.1.1 - 11 Nov 2005
- Bug fix; minor memory leak.
- Bug fix; on some systems, failure resulted while disconnecting from all the
servers, during the shutdown phase just before exiting.
IMAPFilter 1.1 - 24 Aug 2005
- Addition of the list() and lsub() commands, that make it possible to get a
list of the available mailboxes or only of those that are subscribed.
Implementation of the IMAP LIST/LSUB commands, with additional support for
the IMAP CHILDREN (RFC 3348) and IMAP NAMESPACE (RFC 2342) extensions.
- New program option to execute a string from the command line, without
loading a configuration file.
- New program option to enter interactive mode after executing the
configuration file or the command line.
- Servers that reply with multiple SEARCH responses are taken into
- Bug fix; failure to parse the response to fetchfast() that some mail
- Bug fix; in some systems and when in debug mode, an empty namespace caused
IMAPFilter 1.0.1 - 22 Aug 2004
- Bug fix; in some cases processing of messages with an empty body caused
- Bug fix; an invalid namespace prefix was inserted in mailbox names of some
- Unique message identifiers are now used by default, instead of message
sequence numbers, when accessing messages in a mailbox.
- Sequence set ranges are generated and sent to the mail server instead of
enumerations, when this is possible.
- The client now limits the length of the command lines it generates to
approximately 1000 octets, by splitting the request into multiple commands.
- Systems that have no limit on the number of bytes in a pathname are now
- Debug files are now written in $HOME/.imapfilter/ instead of /tmp/.
IMAPFilter 1.0 - 23 May 2004
- Initial release of IMAPFilter with extension language Lua.