|
| 1 | +SpamPD Change Log |
| 2 | +----------------- |
| 3 | + |
| 4 | +2.40 (10-Jan-09) |
| 5 | + |
| 6 | +- New config option to load a specific configuration file after the default |
| 7 | + local.cf file, thereby overriding any settings therein. The new option is |
| 8 | + --saconfig=filename. Thanks to Sven Mueller for code and Bernd Zeimetz for |
| 9 | + bringing it up. (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=344373) |
| 10 | + |
| 11 | +- Integrated code by Alexander Wirt to introduce a parameter which |
| 12 | + sets a proper home directory (--homedir=path) and also cleans up the |
| 13 | + environment before backgrounding. |
| 14 | + (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=421100) |
| 15 | + * NOTE: * default homedir is /var/spool/spamassassin/spampd which needs to be |
| 16 | + writable by the user spampd is running as. Previously, some files like the |
| 17 | + auto-whitelist were written to the .spamassassin folder inside the users home |
| 18 | + directory who started spampd, typically root. |
| 19 | + |
| 20 | +- Integrated fix from Vladislav Kurz for LMTP multi-line response after DATA |
| 21 | + is sent. (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=395355) |
| 22 | + |
| 23 | +- Yet another fix for older Net::Server versions (<= 0.87) dying when logging |
| 24 | + a % character to Sys::Syslog. This also fixes the bug in 2.30 that logs "%s" |
| 25 | + instead of the actual messages on some system. |
| 26 | + |
| 27 | +- Fixed bug with temp files sticking around until spampd child exists, |
| 28 | + introduced when SA 3.0 was released |
| 29 | + (https://issues.apache.org/SpamAssassin/show_bug.cgi?id=5444). |
| 30 | + Thanks to Simon Matter for bringing this to my attention. |
| 31 | + |
| 32 | +######## |
| 33 | + |
| 34 | +2.30 (31-Oct-05) |
| 35 | +- Another, hopefully final, fix for the Sys::Syslog issue of % signs in the log |
| 36 | + string. Fixes possible DoS vulnerability. Thanks to Sven Mueller and Florian |
| 37 | + Weimer for the solution. |
| 38 | +- Added new options for adding X-Envelope-From and (optionally) X-Envelope-To |
| 39 | + headers to messages before SA processing. The idea is to help SA process any |
| 40 | + blacklist/whitelist to/from directives on the actual sender/recipients instead |
| 41 | + of the possibly bogus envelope headers. Use --seh or --set-envelope-headers |
| 42 | + to enable setting both headers, or use --sef or --set-envelope-from to enable |
| 43 | + only X-Envelope-From. If added, spampd attempts to remove the X-Envelope-To |
| 44 | + header after SA processing to preserve BCC recipient anonymity, but enabling |
| 45 | + this header may still expose recipient information. See man page for more |
| 46 | + details. This patch was originally submitted by Sven Mueller, was slightly |
| 47 | + modified, and the --sef option was added. |
| 48 | + |
| 49 | +######## |
| 50 | + |
| 51 | +2.21 (23-Oct-05) (unreleased) |
| 52 | +- fixed SA version check on alphanumeric version strings. Stops the annoying |
| 53 | + Perl warning messages in the mail log. Thanks to Sven Mueller for the fix. |
| 54 | + |
| 55 | +######## |
| 56 | + |
| 57 | +2.20 (05-Oct-04) |
| 58 | +- added support for SpamAssassin version 3. spampd should now support all |
| 59 | + SA versions (tested with 2.6.3 and 3.0.0). |
| 60 | +- removed --add-sc-header feature. It is now redundant with SA v2.6 ability |
| 61 | + to (almost fully) customize headers, which v3 improves on. If anyone |
| 62 | + really needs this feature, please let me know. |
| 63 | +- added --nodetach option to prevent daemon process backgrounding. Patch |
| 64 | + provided by Urban Petry. Can be useful for win32/cygwin. |
| 65 | +- if --debug is specified, Net::Server log level is increased to 4 (debug) |
| 66 | + to provide some more info in the log (can be useful for diagnosing |
| 67 | + user/permission issues). Thanks to Urban Petry for idea. |
| 68 | +- the message sender (From header) is now included in the log along with message |
| 69 | + ID, recipient, and scoring info. Thanks to Roland Koeckel for the patch. |
| 70 | + |
| 71 | +######## |
| 72 | + |
| 73 | +2.13 (24-Nov-03) |
| 74 | +- SA debug messages redirected from STDERR (warn) to syslog. Thanks to Roland |
| 75 | + Koeckel for the suggestion. |
| 76 | + |
| 77 | +######## |
| 78 | + |
| 79 | +2.12 (15-Nov-03) |
| 80 | +- fixed bug related to Sys::Syslog where we needed to escape % signs in |
| 81 | + Message IDs. Thanks to Jeffrey W. Collyer and Yann Grossel for the bug reports. |
| 82 | +- minor performance improvement in SpamPD::Client using buffered write to send |
| 83 | + message data. Thanks to Sam Horrocks for the tip. |
| 84 | +- fixed error condition when an error response ([4|5]xx) was returned after a |
| 85 | + DATA command was sent. Thanks to Rodrigo Ventura for bug reports about this. |
| 86 | + |
| 87 | +######## |
| 88 | + |
| 89 | +2.11 (15-Jul-03): |
| 90 | +- fix for occasional corrupted message headers which caused blank messages |
| 91 | + (seemed to have only affected certain malformed spam mail). |
| 92 | +- added --logsock option for syslog socket. Defaults to 'unix' except for |
| 93 | + HP-UX and SunOS (Solaris) which I'm told prefer 'inet'. |
| 94 | + |
| 95 | +######## |
| 96 | + |
| 97 | +2.10 (01-Jul-03): |
| 98 | +- added optional 'X-Spam-Checked-By: {hostname}' header, where {hostname} is, |
| 99 | + theoretically, the name of the machine doing the message scanning. New |
| 100 | + options --add-sc-header and --hostname=name control this behavior. |
| 101 | + |
| 102 | +######## |
| 103 | + |
| 104 | +2.00 (10-Jun-03): |
| 105 | +- major rewrite of how mail is handled internally. spampd now takes no |
| 106 | + responsibility for the mail at any point, instead acting as a transparent |
| 107 | + proxy between the originating and the destination servers. That is, the |
| 108 | + servers speak to each other through spampd so final mail delivery |
| 109 | + occurs only when the destination server acknowledges receipt of the data. |
| 110 | + Idea based on smtpprox by Bennett Todd (http://bent.latency.net/smtpprox/). |
| 111 | + Unfortunately this breaks the ability to redirect the mail based on spam |
| 112 | + score, since scoring happens after all recipients have been specified and |
| 113 | + accepted. But, it is much cleaner and safer than the previous method. |
| 114 | + |
| 115 | +- new architecture doesn't store the mail data in memory any more. Message |
| 116 | + is still written to memory before scanning by SpamAssassin, but messages |
| 117 | + larger than the --maxsize to be scanned won't eat up a bunch of memory. |
| 118 | + From smtpprox documentation by Bennet Todd: |
| 119 | + "it [spampd] stores the body of the message in an unlinked file |
| 120 | + under /tmp, which should be a tmpfs; this prevents the allocation |
| 121 | + overhead associated with large strings (often 2-3x) and ensures that |
| 122 | + space will be returned to the OS as soon as it's not needed." |
| 123 | + |
| 124 | +- as a bonus feature, LMTP is now supported by virtue of spampd's transparency. |
| 125 | + |
| 126 | +- added a timeout check around the socket operations as suggested in the |
| 127 | + Net::Server docs. Added new parameter to control this: --childtimeout=n |
| 128 | + where n is number of seconds. |
| 129 | + |
| 130 | +- added a timeout check around the message processing (spam checking) routines |
| 131 | + to guard against a SpamAssassin hang. Added new parameter to control |
| 132 | + this: --satimeout=n where n is number of seconds. If a timeout (or error) |
| 133 | + occurs while processing, the mail is still passed on unless the new --dose |
| 134 | + (die-on-sa-errors) paramater is given. |
| 135 | + |
| 136 | +- added --children=n parameter to specify how many child |
| 137 | + servers to spawn and maintain. Default is 5 children (plus |
| 138 | + one parent). |
| 139 | + |
| 140 | +- now uses Net::Server::PreForkSimple instead of PreFork. (Tried utilizing the |
| 141 | + advanced children pool features of PreFork but either couldn't figure it out |
| 142 | + or they're kinda broken. If anyone has experience here, please let me know.) |
| 143 | + |
| 144 | +- improved logging including the Message-ID, recipients, 100ths precision |
| 145 | + on spam score, processing time, and file size. Logging format now better |
| 146 | + resembles that of spamd (which hopefully means spamd log analysis tools can be |
| 147 | + made to work with spampd easily). |
| 148 | + |
| 149 | +- removed dependencies on Net::SMTP, Net::SMTP::Server::Client, and Error |
| 150 | + modules. |
| 151 | + |
| 152 | +- host/port and relay host/port can both be specified as xx.xx.xx.xx:nn in |
| 153 | + the --host and --relayhost parameters, or as individual parameters (--host, |
| 154 | + --port, --relayhost, --relayport). |
| 155 | + |
| 156 | +# The next 3 items are ideas/patches by |
| 157 | +# Kurt Andersen, |
| 158 | +# Agilent Technologies Postmaster |
| 159 | +# Global Messaging Team, Agilent Technologies |
| 160 | + |
| 161 | +- added optional support for Time::HiRes for more accurate processing time |
| 162 | + reporting in the log (automatically loaded if Time::HiRes is available). |
| 163 | + |
| 164 | +- added optional logging of which SA rules matched a message. New option is |
| 165 | + --log-rules-hit or --rh for short. |
| 166 | + |
| 167 | +- Added auto HPUX OS detection for syslog loggging |
| 168 | + "(for some reason HPUX chokes on using the 'unix' socket type)." |
| 169 | + |
| 170 | +# Thanks Kurt! |
| 171 | + |
| 172 | +- added much more verbose spampd logging when using the --debug option. |
| 173 | + |
| 174 | +- 3 parameters are now deprecated but accepted for backwards compatability: |
| 175 | + --dead-letters, --heloname, and --stop-at-threshold |
| 176 | + |
| 177 | +- added shorthand choice for some options: |
| 178 | + --aw for --auto-whitelist; --L for --local-only; --a for --tagall |
| 179 | + --u for --user; --g for --group; --p for --pid |
| 180 | + --d for --debug; --h for --help; |
| 181 | + |
| 182 | +- documentation updates |
| 183 | + |
| 184 | +- licensing change due to use of Bennet Todd's code (to GNU GPL from Perl |
| 185 | + Artistic). |
| 186 | + |
| 187 | +######## |
| 188 | + |
| 189 | +1.0.2 (13-Apr-03): |
| 190 | +- added 'local-only' parameter to pass on to SA which turns off all |
| 191 | + network-based tests (DNS, Razor, etc). |
| 192 | + |
| 193 | +######## |
| 194 | + |
| 195 | +1.0.1 (3-Feb-03): |
| 196 | +- fixed minor but substantial bug preventing child processes |
| 197 | + from exiting properly since the counter wasn't being incremented (d'oh!). |
| 198 | + Thanks to Mark Blackman for pointing this out. |
| 199 | + |
| 200 | +- fixed typo in pod docs (Thx to James Sizemore for pointing out) |
| 201 | + |
| 202 | +######## |
| 203 | + |
| 204 | +Changes to assassind (1.0.0 initial release of spampd - May 2002): |
| 205 | +A different message rewriting method (using |
| 206 | + Mail::SpamAssassin::NoMailAudit instead of Dave Carrigan's |
| 207 | + custom headers and Mail::Audit); |
| 208 | +Adding more options for message handling, network/protocol options, |
| 209 | + some options to pass on to SpamAssassin (such as whitelist usage); |
| 210 | +More orientation to being used as a content filter for the |
| 211 | + Postfix MTA, mostly by changing some default values; |
| 212 | +Documentation changes; |
| 213 | + |
| 214 | +## EOF ## |
0 commit comments