# Legend: # --- = A new release # + = Added a feature (in a backwards compatible way) # ! = Changed something significant, or removed a feature # * = Fixed a bug, or made a minor improvement --- 0.200 (2008-03-11 22:00) Courier::Filter: ! Config file has been renamed to "courier-filter-perl.conf" from "pureperlfilter.conf". Courier::Message: * Fixed a bug that caused crashes when encountering invalid (e.g., non-ASCII) characters in raw MIME encoded words. * Fixed fallback decoding of raw message headers from non-ASCII, non-UTF-8 encodings such as ISO-8859-1. Previously, any non-UTF-8 byte sequences would be decoded as the "�" Unicode substitution character. Now this case properly falls back to reinterpreting the entire header as Windows- 1252. Note: In the absence of the experimental "UTF8SMTP" SMTP extension, non-ASCII characters are formally illegal in raw message headers, so this really only affects exceptional cases. * Eliminated some corner case "Use of uninitialized value" warnings. Courier::Config: * Lower-cased and slightly adjusted constant/method names. Compatibility aliases for the old names are provided. + Added courier_executable() and courier_version() methods. See man-page. Courier::Util: + Added as a utility module for use by other modules of the Courier::Filter framework. Courier::Filter::Module: + Added warn() method for writing warning messages to syslog. DNSBL filter module: * Ignore messages received via IPv4/IPv6 loopback addresses (i.e., self submissions). SPF filter module: * Use Mail::SPF instead of the old Mail::SPF::Query. Added new "spf_options" option with options for Mail::SPF::Server. + The switch to Mail::SPF brings IPv6 support! + Support both MAIL FROM and HELO checks separately. ! Deprecated "fallback_guess" and "trusted_forwarders" options in favor of the "default_policy" and "tfwl" keys to the "spf_options" option. The old options induce a warning when specified but are still supported for now. Due to the move from the obsolete Mail::SPF::Query module to the Mail::SPF, the (yet unreleased) Mail::SPF::BlackMagic extension module is now required when using these non-standard options. ! Deprecated the "unknown" and "error" SPF result codes in favor of the new "permerror" and "temperror" ones defined in RFC 4408. The old result codes induce a warning when specified in the "match_on" option but are still supported for now. * Ignore messages with an empty identity of the configured scope (esp. empty MAIL FROM, i.e., bounces) or with an identity in the form of an IP address literal ("[]"). SPFout filter module: * Use Mail::SPF instead of the old Mail::SPF::Query. Added new "spf_options" option with options for Mail::SPF::Server. * Use the IPv6-supporting Net::Address::IP::Local rather than the IPv4-only Net::Address::IPv4::Local module for auto-discovery of the local system's outbound IP addresses. Note that auto-discovery does not work from behind NATs, in which case outbound IP addresses must be configured manually using the "outbound_ip_addresses" option. + The switch to Mail::SPF and Net::Address::IP::Local brings IPv6 support! ! Deprecated the "unknown" and "error" SPF result codes in favor of the new "permerror" and "temperror" ones defined in RFC 4408. The old result codes induce a warning when specified in the "match_on" option but are still supported for now. * Ignore messages with an empty identity of the configured scope (esp. empty MAIL FROM, i.e., bounces) or with an identity in the form of an IP address literal ("[]"). SpamAssassin filter module: + Added a "prefs_file" option for easy configuration of Courier::Filter specific SpamAssassin preferences. SpamAssassin now will not read any preferences besides its default configuration files unless this option is specified. * Eliminated memory leak by properly cleaning up Mail::SpamAssassin::Message objects. BlankBody filter module: + Added for matching blank message bodies (a stupid spammer symptom). FakeDate filter module: + Added for matching implausible and malformed date header fields. SendCopy filter module: + Added for sending message copies to additional recipients. Debian: + Automatically start and stop courier-filter-perl using Courier's `filterctl` post-installation and pre-removal, respectively. ! "courier-filter-perl.conf" (previously "pureperlfilter.conf") config file is no longer a conffile managed by dpkg. Migrate seamlessly. ! Install courier-filter-perl executable into /usr/lib/courier/filters/ rather than /usr/lib/. > control: * Section: mail (was: perl) * Standards-Version: 3.7.3 * Raised debhelper compat level to 5 / Build-Depends: debhelper (>= 5) * Build-Depends: debhelper (was: Build-Depends-Indep:) * Removed Build-Depends-Indep: libtest-simple-perl (now provided by perl-modules) * Recommends: libmail-spf-perl (was: libmail-spf-query-perl) * Recommends: libnet-rblclient-perl, libclamav-client-perl (was: Suggests:) * Removed Recommends: libdigest-md5-perl (now provided by perl) * Removed Recommends: libnet-dns-perl (unused) * Suggests: libnet-address-ip-local-perl (was: libnet-address-ipv4-local-perl) > rules: * Run `$(BUILD) distclean` only if $(BUILD) actually exists. --- 0.17 (2005-11-11 03:00) Courier::Filter: * If socket already exists, check whether it is dead or alive. If it is dead, remove it and start up normally. If it is alive, die like before. (Closes: Debian #326785) * Ignore connections that don't send any data. Courier::Message: * Decode header text as "UTF-8" encoded, not as "utf8" encoded. Starting with Perl 5.8.7, this does make a difference. "utf8" allows invalid Unicode codepoints (such as UTF-16 surrogates), while "UTF-8" (the official standard UTF-8) doesn't. We want to avoid invalid codepoints because they tend to cause trouble later. * Don't die on invalid characters in encoded-word chunks. If an encoded-word cannot be decoded, retain it undecoded. * "authenticated" property: refined parsing of "Received:" header and "AUTH:" authentication information. + Added "authenticated_user" property. * Corrected documentation of "header" property. SPFout filter module: * Don't be pedantic about what our "public" IPv4 address is vis-à-vis the various recipient MXes. Assume we just have a single public address that applies to all recipient MXes. (Let's see if anyone out there actually has a more complex setup...) Parts filter module: * Requires IO::InnerFile 2.110 or later, Archive::Zip. SpamAssassin filter module: + Added for SpamAssassin-based spam detection. ! Requires Mail::SpamAssassin. Miscellaneous: * Relaxed sender IPv4 address matching in DNSBL, SPF, and SPFout filter modules, making the "::ffff:" IPv6 prefix optional and thus supporting IPv6-disabled versions of Courier. * Courier::Filter::Overview: Updated mention of pythonfilter from version 0.5 to 0.8. * README: Added license statement. + INSTALL: Added system requirements and building/installation instructions. * Minor documentation fixes. Debian: * Recommends: libmime-perl, not libmime-tools-perl. (Closes: Debian #297730) ! Recommends: libio-stringy-perl (>= 2.110), libmail-spamassassin-perl, libarchive-zip-perl. --- 0.16 (2005-01-17 19:11) Debian: * Explicitly specify the dependency on Perl 5.8 so upgrades from Woody are guaranteed to work smoothly and also to simplify backporting. This deals with Debian bug #289796. ! Recommend libnet-dns-perl. Suggest libnet-rblclient-perl, libnet-address-ipv4-local-perl, and libclamav-client-perl (all of which are not yet packaged for Debian). SPF filter module: ! Deprecated the "reject_on" option in favor of the new "match_on" option. ! Removed "none" from the default set of result codes to match on. ! Changed the documentation to recommend also rejecting on "unknown" results. + Added a reference in the documentation to the spf-draft-200406 specification, to which this module complies. SPFout filter module: + Added for outbound SPF filtering. ClamAVd filter module: + Added for malware filtering using a ClamAV `clamd` dameon. Miscellaneous: * Updated the sample configuration file. * Minor documentation fixes. --- 0.15 (2004-10-30 01:13) ! Courier::Filter is primarily a plug-in for the Courier MTA, not a library of Perl modules intended to be used by other programs or modules. ! Renamed the Debian package to "courier-filter-perl". ! Install included Perl modules in the private path /usr/share/courier-filter-perl/perl5 instead of Perl's configured "vendorlib" path (/usr/share/perl5 in Debian). * Various minor fixes. --- 0.14 (2004-10-22 00:10) + Added documentation for the test-filter-module and pureperlfilter executables. > test-filter-module: * Fixed the command-line parsing and handling of control file names. * Made the result output format compatible with multi-line results. --- 0.13 (2004-10-04 23:00) + Added Debian package control files. > Deprecated the MIMEParts filter module in favor of the new Parts filter module, which is compatible but a lot more powerful: ! Switched from completely-in-memory processing to using temporary files in order to work around two nasty bugs in MIME::Parser and Archive::Zip. ! Renamed the "max_size" constructor option to "max_message_size". "max_size" is deprecated but still supported for now. ! The "max_size" constructor option now defaults to 1024**2 (1MB) instead of undef. + Added the "max_part_size" constructor option. + Added "views" support (as constructor option and signature aspect), supporting "raw" and "zip" views for now. + Added the "encrypted" signature aspect. + Added Envelope filter module. + Added etc/pureperlfilter.conf as a default configuration file. * Fixed the mysterious ``Can't call method "close" on an undefined value at Filter.pm line 299´´ bug that caused Courier::Filter to fail starting up on some platforms. (File descriptor 3 must be opened in write mode, not in read mode!) * Fixed filter module group handling: * Skip the rest of the current module group and treat it as an implicit accept if a module in the group states an explicit accept. * Log rejections just once, right after a module has stated a reject, i.e. avoid logging the rejection for all higher recursion levels of the module group structure that contains the rejecting module. * Don't try extracting a logger from filter module groups, only from atomic filter modules. * Fixed the Header filter module: * Fixed handling of undefined header fields. * Prepend a "Header:" keyword to positive match results. * Disabled timestamping for the Syslog logger module, as syslog does its own timestamping. * Reworked configuration file example. * Refined Build.PL script. * Lots of minor documentation fixes. --- 0.12 (2004-02-25 01:00) * chmod the courierfilter socket to 0660, so the Courier daemon system group has write access to the socket. This solves the "sendmail: Unable to submit message" permissions problem that occurred on some platforms.. * Make Module::Build automatically create a Makefile.PL to facilitate auto-installation through the CPAN interface.. --- 0.11 (2004-02-22 22:00) * Do not use the proprietary "boolean" pragma module, declare our own boolean constants instead. * Lots of minor documentation fixes. --- 0.1 (initial release) (2004-02-16 23:00) # $Id: CHANGES 211 2008-03-23 01:25:20Z julian $ # vim:tw=79 sts=2 sw=2