1Note for Users Upgrading to SpamAssassin 3.4.5 2---------------------------------------------- 3 4- Spamassassin test suite can now run against the installed 5 SpamAssassin files (rather than those in the source directory) 6 7- unwhitelist_auth now also removes def_whitelist_auth entries 8 9- SPF: add unwhitelist_from_spf to remove both whitelist_from_spf and 10 def_whitelist_from_spf entries 11 12- Default SQL schema for userpref.value changed from varchar(100) to 13 varchar(255), no need to modify unless you hit the limit. (Bug 7803) 14 15- URIDetail can now match full hostname with "host" key 16 17- BodyEval: plaintext_body_sig_ratio: eval rules for the (first text/plain 18 MIME part's) body and signature lengths and ratio 19 20Note for Users Upgrading to SpamAssassin 3.4.4 21---------------------------------------------- 22 23- FromNameSpoof: fns_extrachars parameter default value has been increased to 50 24 25- nosubject and maxhits tflags now work correctly with sa-compile 26 27Note for Users Upgrading to SpamAssassin 3.4.3 28---------------------------------------------- 29 30- New subjprefix keyword added, this can be used to add a prefix to 31 email Subject if the original email matches a particular rule 32 33- New Util::is_fqdn_valid() function to validate hostname (DNS name) format 34 (Bug 7736). To check if a name contains valid TLD, it's still needed to 35 additionally use RegistryBoundaries::is_domain_valid() 36 37- New OLEVBMacro plugin to detect OLE Macro inside documents attached to emails, 38 this plugin requires Archive::Zip and IO::String Perl modules to work. 39 40- Due to the dangerous nature of sa-update --allowplugins option, it 41 now prints a warning that --reallyallowplugins is required to use it. 42 This is to make sure all the legacy installations and wiki guides etc 43 still using it needlessly get fixed. 44 45- TxRep and Awl plugins has been modified to be compatible 46 with latest Postgresql versions. 47 You should upgrade your sql database running the following command: 48 MySQL: 49 "ALTER TABLE `txrep` CHANGE `count` `msgcount` INT(11) NOT NULL DEFAULT '0';" 50 "ALTER TABLE `awl` CHANGE `count` `msgcount` INT(11) NOT NULL DEFAULT '0';" 51 "ALTER TABLE `awl` ADD last_hit timestamp NOT NULL default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;" 52 PostgreSQL: 53 "ALTER TABLE txrep RENAME COLUMN count TO msgcount;" 54 "ALTER TABLE awl RENAME COLUMN count TO msgcount;" 55 "ALTER TABLE awl ADD last_hit timestamp NOT NULL default CURRENT_TIMESTAMP;" 56 57- body_part_scan_size 50000, rawbody_part_scan_size 500000 defaults added (Bug 6582) 58 These enable safer and faster scanning of large emails. 59 60- ALL pseudo-header now returns decoded headers, so it's usage is consistent 61 with single header matching (:raw returns undecoded and folded like before). 62 63- RegistryBoundaries did not load 20_aux_tlds.cf properly in older versions. 64 Old hardcoded list is now removed and RB will print "no tlds defined, need 65 to run sa-update" unless it can find list from config files. 66 67- Deprecated functions: Parser::is_delimited_regexp_valid(), 68 Parser::is_regexp_valid(), Util::regexp_remove_delimiters(), 69 Util::make_qr(). These all are combined into new Util::compile_regexp(). 70 71- DNSEval: add check_rbl_headers to check specific headers in rbl 72 73- DNSEval: add check_rbl_ns_from to check against an rbl for dns servers 74 75- HashBL: Add check_hashbl_bodyre, check_hashbl_emails, check_hashbl_uris, 76 hashbl_ignore 77 78- ASN: Support IPv6 with asn_lookup_ipv6 (Bug 7211) 79 80- sa-update: New option --httputil to force used download utility 81 82- Add rules_matching() expression to meta rules 83 84- Add tflags domains_only/ips_only to DNSEval.pm functions 85 86- RelayCountry: Added new metadata: X-Spam-Countries-External (_RELAYCOUNTRYEXT_), 87 X-Spam-Countries-Auth (_RELAYCOUNTRYAUTH_), X-Spam-Countries-All (_RELAYCOUNTRYALL_) 88 89- New tflag "nosubject" for 'body' rules, to stop matching the Subject 90 header which is part of the body text. 91 92Note for Users Upgrading to SpamAssassin 3.4.2 93---------------------------------------------- 94 95- We now support SHA-512 and SHA-256 signatures for our rules updates. 96 97- We may stop producing SHA-1 signatures in the near future so upgrading 98to 3.4.2 is important. sa-update no longer uses these signatures. 99 100See https://bz.apache.org/SpamAssassin/show_bug.cgi?id=7614 101 102- freemail_import_whitelist_auth, freemail_import_def_whitelist_auth added (Bug 6451) 103 104 105New plugins 106----------- 107 108There are four new plugins added with this release: 109 110 Mail::SpamAssassin::Plugin::HashBL 111 112The HashBL plugin is the interface to The Email Blocklist (EBL). 113The EBL is intended to filter spam that is sent from IP addresses 114and domains that cannot be blocked without causing significant 115numbers of false positives. 116 117 Mail::SpamAssassin::Plugin::ResourceLimits 118 119This plugin leverages BSD::Resource to assure your spamd child processes 120do not exceed specified CPU or memory limit. If this happens, the child 121process will die. See the BSD::Resource for more details. 122 123 Mail::SpamAssassin::Plugin::FromNameSpoof 124 125This plugin allows for detection of the From:name field being used to mislead 126recipients into thinking an email is from another address. The man page 127includes examples and we expect to put test rules for this plugin into 128rulesrc soon! 129 130 Mail::SpamAssassin::Plugin::Phishing 131 132This plugin finds uris used in phishing campaigns detected by 133OpenPhish (https://openphish.com) or PhishTank (https://phishtank.com) feeds. 134 135These plugins are disabled by default. To enable, uncomment 136the loadplugin configuration options in file v342.pre, or add it to 137some local .pre file such as local.pre . 138 139Notable changes 140--------------- 141 142For security reasons SSLv3 support has been removed from spamc(1). 143 144GeoIP2 support has been added to RelayCountry and URILocalBL plugins due 145to GeoIP legacy api deprecations. 146 147New configuration options 148------------------------- 149 150A new template tag _DKIMSELECTOR_ that maps to the DKIM selector (the 's' tag) 151from valid signatures has been added. 152 153A 'uri_block_cont' option to URILocalBL plugin to score uris per continent has been added. 154Possible continent codes are: 155af, as, eu, na, oc, sa for Africa, Asia, Europe, North America, 156Oceania and South America. 157 158The 'country_db_type' and 'country_db_path' options has been added to be able 159to choose in RelayCountry plugin between GeoIP legacy 160(discontinued from 04/01/2018), GeoIP2, IP::Country::Fast 161and IP::Country::DB_File. 162GeoIP legacy is still the default option but it will be deprecated 163in future releases. 164 165A config option 'uri_country_db_path' has been added to be able to choose 166in URILocalBL plugin between GeoIP legacy and new GeoIP2 api. 167 168A config option 'resource_limit_cpu' (default: 0 or no limit) has been added 169to configure how many cpu cycles are allowed on a child process before it dies. 170 171A config option 'resource_limit_mem' (default: 0 or no limit) has been added 172to configure the maximum number of bytes of memory allowed both for 173(virtual) address space bytes and resident set size. 174 175A new config option 'report_wrap_width' (default: 70) has been added 176to set the wrap width for description lines in the X-Spam-Report header. 177 178Notable Internal changes 179------------------------ 180 181SpamAssassin can cope with new Net::DNS module versions. 182 183The "bytes" pragma has been remove from both core modules and plugins for 184better utf-8 compatibility, there has been also some other utf-8 related fixes. 185 186The spamc(1) client can now be build against OpenSSL 1.1.0. 187 188The test framework has been switched to Test::More module. 189 190Other updates 191------------- 192 193A list of top-level domains in registrar boundaries was updated. 194 195 196Note for Users Upgrading to SpamAssassin 3.4.1 197---------------------------------------------- 198 199- The TxRep plugin is now included and disabled by default for new installs. 200 To replace an existing AWL configuration with TxRep, follow the steps below: 201 - Disable AWL 202 - Enable TxRep 203 - Set txrep_factor equal to your previous AWL factor 204 - Set use_txrep to 1 205 206 For more detailed information and more configuration options, consult the 207 documentation in Mail::SpamAssassin::Plugin::TxRep. 208 209- The $VALID_TLDS_RE global in registrar boundaries is deprecated but kept for 210 third-party plugin compatibility. It will become increasingly out of date 211 and may be removed in a future release. 212 213 See lib/Mail/SpamAssassin/Plugin/FreeMail.pm for an example of the new way 214 to obtain a valid list of TLDs, i.e. 215 216 $self->{main}->{registryboundaries}->{valid_tlds_re} 217 218- Mail::SpamAssassin::Util::RegistrarBoundaries is being replaced by 219 Mail::SpamAssassin::RegistryBoundaries so that new TLDs can be updated via 220 20_aux_tlds.cf delivered via sa-update. 221 222 ***3rd Party Plugin Authors, Please Note*** 223 224 The following functions will be removed in the next release after 3.4.1 225 excepting any emergency break/fix releases immediately after 3.4.1: 226 227 Mail::SpamAssassin::Util::RegistrarBoundaries::is_domain_valid 228 Mail::SpamAssassin::Util::RegistrarBoundaries::trim_domain 229 Mail::SpamAssassin::Util::RegistrarBoundaries::split_domain 230 Mail::SpamAssassin::Util::uri_to_domain 231 232 And the following variables will also be removed: 233 234 Mail::SpamAssassin::Util::RegistrarBoundaries::US_STATES 235 Mail::SpamAssassin::Util::RegistrarBoundaries::THREE_LEVEL_DOMAINS 236 Mail::SpamAssassin::Util::RegistrarBoundaries::TWO_LEVEL_DOMAINS 237 Mail::SpamAssassin::Util::RegistrarBoundaries::VALID_TLDS_RE 238 Mail::SpamAssassin::Util::RegistrarBoundaries::VALID_TLDS 239 240 241 This change should only affect 3rd party plugin authors who will need to 242 update their code to utilize Mail::SpamAssassin::RegistryBoundaries 243 instead of the functions and variables in 244 Mail::SpamAssassin::Util::RegistrarBoundaries and the function 245 Mail::SpamAssassin::Util::uri_to_domain which are deprecated and will be 246 removed. 247 248 For example, the $VALID_TLDS_RE global in registrar boundaries is 249 deprecated but kept for third-party plugin compatibility. It will become 250 increasingly out of date and may be removed in a future release. 251 252 See lib/Mail/SpamAssassin/Plugin/FreeMail.pm for an example of the new way 253 to obtain a valid list of TLDs, i.e. 254 255 $self->{main}->{registryboundaries}->{valid_tlds_re} 256 257- It is now recommended that users uncomment "normalize_charset 1" in 258 local.cf. It will break rules that depend on messages being in non-UTF8 259 encodings, but going forward this will enable more robust unicode rules and 260 will eventually become the default. 261 262 263 264Note for Users Upgrading to SpamAssassin 3.4.0 265---------------------------------------------- 266 267- When Bayes classification is in use and messages are 'learned' as spam 268 or ham and stored in a database, the Bayes plugin generates internal 269 message IDs of learned messages and stores them in a 'seen' database to 270 avoid re-learning duplicates and accidental un-learning messages that 271 were not previously learned. With changes in bug 5185, the calculation 272 of message IDs in a bayes 'seen' database has changed, so new code can 273 no longer associate new messages with those learned before the change. 274 275- Note that this change does not affect recognition of old tokens and the 276 classification algorithm, only duplicate detection and unlearning of old 277 messages is affected. 278 279- Because of this change, if you use Bayes and you are upgrading from a 280 version prior to 3.4.0, you may consider wiping your Bayes database 281 and starting fresh. 282 283- There is a new optional dependency on Net::Patricia to speed up lookups 284 on internal_networks, trusted_networks or msa_networks when these lists 285 contain a larger number of entries. Consider installing this module to 286 speed up classification. 287 288- The minimal required version of NetAddr::IP was bumped to 4.010 289 290- In addition to existing backends, the 3.4.0 introduces support for keeping 291 a Bayes database on a Redis server, either running locally, or accessed 292 over network. Similar to SQL backends, the database may be concurrently 293 used by several hosts running SpamAssassin. 294 295- For more detail on these and other changes, please see the Announcement 296 file at: 297 http://svn.apache.org/repos/asf/spamassassin/branches/3.4/build/announcements/3.4.0.txt 298 299Note for Users Upgrading to SpamAssassin 3.3.0 300----------------------------------------------- 301 302- Rules are no longer included with SpamAssassin "out of the box". You will 303 need to immediately run "sa-update", or download the additional rules .tgz 304 package and run "sa-update --install" with it, to get a ruleset. 305 306- The BETA label has been taken off of the SpamAssassin SQL support. Please 307 be aware that occasional changes may still be made to this area of the 308 code. You should be sure to read this upgrade document each time you 309 install a new version to determine if any SQL updates need to be made to 310 your local installation. 311 312- The DKIM plugin is now enabled by default for new installs, if the perl 313 module Mail::DKIM is installed. However, installation of SpamAssassin 314 will not overwrite existing .pre configuration files, so to use DKIM when 315 upgrading from a previous release that did not use DKIM, a directive: 316 317 loadplugin Mail::SpamAssassin::Plugin::DKIM 318 319 will need to be uncommented in file "v312.pre", or added to some 320 other .pre file, such as local.pre. 321 322 323Note for Users Upgrading to SpamAssassin 3.2.0 324----------------------------------------------- 325 326- The "127/8" network, including 127.0.0.1, is now always implicitly part of 327 "trusted_networks" and "internal_networks". It's impossible to remove these 328 from the trusted/internal sets, since if you cannot trust the host where 329 SpamAssassin is running, you cannot trust SpamAssassin itself. If you 330 previously had "trusted_networks" and "internal_networks" lines listing those 331 hosts, you should now remove them, otherwise a minor (non-lint-error) warning 332 will be output. 333 334- For ISPs -- version 3.2.0 now includes a new way to specify Mail Submission 335 Agents, relay hosts which accept mail from your own users and authenticates 336 them appropriately. See the Mail::SpamAssassin::Conf manual page for the 337 "msa_networks" setting. 338 339 340Note for Users Upgrading to SpamAssassin 3.1.0 341----------------------------------------------- 342 343- A significant amount of core functionality has been moved into 344 plugins. These include, AWL (auto-whitelist), DCC, Pyzor, Razor2, 345 SpamCop reporting and TextCat. For information on configuring these 346 plugins please refer to their individual documentation: 347 perldoc Mail::SpamAssassin::Plugin::* (ie AWL, DCC, etc) 348 349- There are now multiple files read to enable plugins in the 350 /etc/mail/spamassassin directory; previously only one, "init.pre" was 351 read. Now both "init.pre", "v310.pre", and any other files ending 352 in ".pre" will be read. As future releases are made, new plugins 353 will be added to new files named according to the release they're 354 added in. 355 356- Due to license restrictions the DCC and Razor2 plugins are disabled 357 by default. We encourage you to read the appropriate license 358 yourself and decide if you are able to re-enable the plugins for 359 your site. 360 361- The use_auto_whitelist config option has been moved to a user config 362 option, this allows individual users to turn on or off whitelisting 363 regardless of what is set in the system config. If you would like to 364 disable AWL (auto-whitelist) on a site-wide basis, then you can comment 365 out the plugin in "v310.pre". 366 367- The bayes_auto_learn_threshold_* config options for bayes have moved 368 to a plugin. In general the default should work just fine however 369 if you are interested in changing these values you should see: 370 perldoc Mail::SpamAssassin::Plugin::AutoLearnThreshold 371 372- The AWL support for NDBM_File databases has been dropped, due to a 373 bug in that package which renders it useless (bug 4353). It appears 374 that SDBM_File, the package which will be used instead, is fully 375 compatible with NDBM however, so this should be unnoticeable. 376 377- The prefork algorithm for spamd has been changed. In this version spamd 378 will attempt to keep a small number of "hot" child processes as busy as 379 possible, and keep any others as idle as possible, using something 380 similar to the Apache httpd server scaling algorithm. This reduces 381 memory usage and swapping. You can use the --round-robin switch for 382 spamd to disable this scaling algorithm, and the behaviour seen in the 383 3.0.x versions will be used instead, where all processes receive an 384 equal load and no scaling takes place. 385 386- As of 3.1.0, in addition to the generic BayesSQL support (via 387 Mail::SpamAssassin::BayesStore::SQL) usable by multiple database 388 drivers there is now specific support for MySQL 4.1+ and 389 PostgreSQL. This support is based on non-standard features present 390 in both database servers that allow for various performance boosts. 391 392 If you were using the previous BayesSQL support with MySQL, and 393 already have MySQL 4.1+ installed you can begin using the new module 394 immediately by replacing the bayes_store_module line in your 395 configuration with: Mail::SpamAssassin::BayesStore::MySQL 396 397 We do however recommend that you switch your MySQL tables over to 398 InnoDB for better data integrity and multi user support. You can 399 most often do this via a simple ALTER TABLE command, refer to the 400 MySQL documentation for more information. 401 402 If you were previously using PostgreSQL for your bayes database then 403 we STRONGLY recommend switching to the PostgreSQL specific backend: 404 Mail::SpamAssassin::BayesStore::PgSQL 405 To switch to this backend you should first run sa-learn --backup to 406 make a backup of your existing data and then drop and recreate the 407 database following the instructions in sql/README.bayes. Then you 408 can restore the database with sa-learn --restore. If you have 409 multiple users then you will have to run --backup and --restore for 410 each user to fully restore the database. 411 412- See http://wiki.apache.org/spamassassin/UpgradeTo310 for a 413 supplementary list of upgrade notes. It will be updated with any 414 upgrade notes not captured in this document. 415 416- Finally, this document is likely not complete. Other configuration 417 options/arguments may have changed from older versions, etc. It would 418 be good to double-check any custom configuration options to make sure 419 they're still valid. This could be as simple as running "spamassassin 420 --lint", or more complex, as required by the environment. 421 422 423Note for Users Upgrading to SpamAssassin 3.0.x 424---------------------------------------------- 425 426- The SpamAssassin 2.6x release series was the last set of releases to 427 officially support perl versions earlier than perl 5.6.1. If you are 428 using an earlier version of perl, you will need to upgrade before you 429 can use the 3.0.0 version of SpamAssassin. You will also want to make 430 sure that you have the appropriate versions of required and optional 431 modules as they may have changed from old versions. The INSTALL 432 document has the modules and version requirements listed. 433 434- See http://wiki.apache.org/spamassassin/UpgradeTo300 for a 435 supplementary list of upgrade notes. It will be updated with any 436 upgrade notes not captured in this document. 437 438- SpamAssassin 3.0.0 has a significantly different API (Application Program 439 Interface) from the 2.x series of code. This means that if you use 440 SpamAssassin through a third-party utility (milter, etc,) you need to make 441 sure you have an updated version which supports 3.0.0. See 442 http://wiki.apache.org/spamassassin/UpgradeTo300 for information about 443 third-party software. 444 445- The --auto-whitelist, --whitelist and -a options for "spamd" and 446 "spamassassin" to turn on the auto-whitelist have been removed and 447 replaced by the "use_auto_whitelist" configuration option which is 448 also now turned on by default. 449 450- The --virtual-config switch for spamd had to be dropped, due to licensing 451 issues. It is replaced by the --virtual-config-dir switch. 452 453- The "rewrite_subject" and "subject_tag" configuration options were 454 deprecated and are now removed. Instead, using "rewrite_header Subject 455 [your desired setting]". e.g. 456 457 rewrite_subject 1 458 subject_tag ****SPAM(_SCORE_)**** 459 460 becomes 461 462 rewrite_header Subject ****SPAM(_SCORE_)**** 463 464- The "sa-learn --rebuild" command has been deprecated; please use 465 "sa-learn --sync" instead. The --rebuild option will remain temporarily 466 for backward compatibility. 467 468- The Bayesian storage modules have been completely re-written and now 469 include Berkeley DB (DBM) storage as well as SQL based storage (see 470 sql/README.bayes for more information). In addition, a new format 471 has been introduced for the bayes database that stores tokens in fixed 472 length hashes (Bayes v3). All DBM databases should be automatically 473 converted to this new format the first time they are opened for write. 474 You can manually perform the upgrade by running "sa-learn --sync" 475 from the command line. 476 477 Due to the database format change, you will want to do something like 478 this when upgrading: 479 480 - stop running spamassassin/spamd (ie: you don't want it to be running 481 during the upgrade) 482 - run "sa-learn --rebuild", this will sync your journal. if you skip 483 this step, any data from the journal will be lost when the DB is 484 upgraded. 485 - upgrade SA to 3.0.0 486 - run "sa-learn --sync", which will cause the db format to be upgraded. 487 if you want to see what is going on, you can add the "-D" option. 488 - test the new database by running some sample mails through 489 SpamAssassin, and/or at least running "sa-learn --dump" to make sure 490 the data looks valid. 491 - start running spamassassin/spamd again 492 493 If, instead of uprading your Bayes database, you want to wipe it and 494 start fresh, you can run "sa-learn --clear" to safely remove your 495 Bayes database files. If the --clear command issues an error then 496 you can simply delete the Bayes database files ("bayes_*") while SA 497 is not running; SpamAssassin will recreate them in the current 498 format when it runs. 499 500- "spamd" now has a default max-children setting of 5; no more than 5 501 child scanner processes will be run in parallel. Previously, there was 502 no default limit unless you specified the "-m" switch when starting 503 spamd. 504 505- If you are using a UNIX machine with all database files on local disks, 506 and no sharing of those databases across NFS filesystems, you can use a 507 more efficient, but non-NFS-safe, locking mechanism. Do this by adding 508 the line "lock_method flock" to the /etc/mail/spamassassin/local.cf 509 file. This is strongly recommended if you're not using NFS, as it is 510 much faster than the NFS-safe locker. 511 512- Please note that the use of the following commandline parameters for 513 spamassassin and spamd have been deprecated and may be removed in 514 upcoming versions of SpamAssassin. Please discontinue usage of these 515 options: 516 517 in the 2.6x series: --add-from, --pipe, -F, --stop-at-threshold, 518 -S, -P (spamassassin only) 519 in the 3.0.x series: --auto-whitelist, -a, --whitelist-factory, -M, 520 --warning-from, -w, --log-to-mbox, -l 521 522- user_scores_sql_table is no longer supported. If you need to use a table 523 name, other than the default, create a custom query using the 524 user_scores_sql_custom_query config option. 525 526- SpamAssassin runs in "taint mode" by default for improved security. 527 Certain third-party modules may be incompatible with taint mode. 528 529- 2.6x deprecated the use of the "check_bayes_db" script, and it 530 has been removed in 3.0.0. Please see the sa-learn man/pod 531 documentation for more info. 532 533- Finally, this document is likely not complete. Other configuration 534 options/arguments may have changed from older versions, etc. It would 535 be good to double-check any custom configuration options to make sure 536 they're still valid. This could be as simple as running "spamassassin 537 --lint", or more complex, as required by the environment. 538 539 An example: "require_version <version>" hasn't changed itself, but the 540 internal version representation is now "x.yyyzzz" instead of "x.yz" 541 which could cause issues if "require_version 3.00" is expected to work 542 (it won't, it needs to be "require_version 3.000000"). 543 544 545Note for Users Upgrading from SpamAssassin 2.5x 546----------------------------------------------- 547 548- Due to major reliability shortcomings in the database support libraries 549 other than DB_File, we now require that the DB_File module be installed 550 to use SpamAssassin's Bayes rules. 551 552 SpamAssassin will still work without DB_File installed, but the Bayes 553 support will be disabled. 554 555 If you install DB_File and wish to import old Bayes database data, each 556 user with a Bayes db should run "sa-learn --import" to copy old entries 557 from the other formats into a new DB_File file. 558 559 Due to the database library change, and the change to the database 560 format itself, you will want to do something like this when upgrading: 561 562 - stop running spamassassin/spamd (ie: you don't want it to be running 563 during the upgrade) 564 - run "sa-learn --rebuild", this will sync your journal. if you skip 565 this step, any data from the journal will be lost when the DB is 566 upgraded. 567 - install DB_File module if necessary 568 - upgrade SA to 3.0.0 569 - if you were using another database module previously, run "sa-learn 570 --import" to migrate the data into new DB_File files 571 - run "sa-learn --sync", which will cause the db format to be upgraded. 572 if you want to see what is going on, you can add the "-D" option. 573 - test the new database by running some sample mails through 574 SpamAssassin, and/or at least running "sa-learn --dump" to make sure 575 the data looks valid. 576 - start running spamassassin/spamd again 577 578 Obviously the steps will be different depending on your environment, but 579 you get the idea. :) 580 581 582Note For Users Upgrading From SpamAssassin 2.3x or 2.4x 583------------------------------------------------------- 584 585- SpamAssassin no longer includes code to handle local mail delivery, as 586 it was not reliable enough, compared to procmail. So now, if you relied 587 on spamassassin to write the mail into your mail folder, you'll have to 588 change your setup to use procmail as detailed below. If you used 589 spamassassin to filter your mail and then something else wrote it into a 590 folder for you, then you should be fine. 591 592- Support for versions of the optional Mail::Audit module is no longer 593 included. 594 595- The default mode of tagging (which used to be ***SPAM*** in the subject 596 line) no longer takes place. Instead the message is rewritten. If an 597 incoming message is tagged as spam, instead of modifying the original 598 message, SpamAssassin will create a new report message and attach the 599 original message as a message/rfc822 MIME part (ensuring the original 600 message is completely preserved and easier to recover). If you do not 601 want to modify the body of incoming spam, use the "report_safe" option. 602 The "report_header" and "defang_mime" options have been removed as a 603 result. 604 605(end of UPGRADE) 606 607//vim:tw=74: 608