UNPKG

haraka-plugin-bounce

Version:

Provide multiple configurable strategies to detect, validate, and process email bounces

124 lines (92 loc) 3.96 kB
# Changelog The format is based on [Keep a Changelog](https://keepachangelog.com/). ### Unreleased ### [2.0.1] - 2025-06-02 - empty_return_path must run before the Headers plugin #11 - Fixed From header parsing error #10 ### [2.0.0] - 2025-05-20 Changes to config/bounce.ini - removed check.non_local_msgid - removed reject.non_local_msgid - added check.hash_validation - added check.hash_date - added reject.hash_validation - added reject.hash_date - added validation.max_hash_age_days - added validation.hash_algorithm - added validation.secret Added config/bounce_whitelist.json - combinations of sender/recipient that should skip validation Changes to test/index.js - removed requirement for haraka-email-message - removed tests for non_local_msgid - added tests for create_validation_hash - added tests for validate_bounce - added tests for get_bounce_headers - added tests for should_skip - added tests for find_received_headers - added tests for validate_hash_date - replaced most sinon.stub with sinon.spy to better monitor code behavior - refactored many tests to make better use of sinon spies and assertions Changes to index.js - removed load_host_list() - removed load_allowed_msgid_domains() - removed non_local_msgid() - removed find_message_id_headers() - added create_validation_hash - creates a cryptographic validation hash for outbound emails - added validate_date - reject if original email was sent before the configured number of days - added validate_bounce - validates the bounce by comparing the hash created on the original email - added find_bounce_headers - grab Date, From, Message-ID, and hash headers from the body of the bounce - added should_skip - determines whether validation checks should be skipped - added is_whitelisted - checks to see if a From:To pair is whitelisted - added checks to only register a hook if it is configured - added descriptive messages to all transaction.results Changes to package.json - added devDependencies (mocha and prettier) - removed dependency for haraka-tld - removed dependency for haraka-email-message Changes to README.md - removed documentation for non_local_msgid - added documentation for the validation header - added documentation for the validation_date - Removed single_recipient checks for relaying and private IPs (#6) ### [1.0.5] - 2025-02-15 #### Added - ci(GHA): added prettier config - check host_list to confirm if local domain - added config file for allowed Message-IDs - added tests for bounce_spf() - added Sinon for creating mocks - Message-ID header regex to check for required angle brackets #### Fixed - fixed bug where config key reject.empty_return_path was ignored - fixed timeout bug in bounce_spf() #### Changed - test: due to loading assert/strict..., replace strictEqual with equal - renamed config key check.reject_all to reject.all_bounces - moved bad_rcpt function from hook_data to hook_rcpt_ok - moved config key check.bad_rcpt to reject.bad_rcpt - refactored most of the existing tests to be more thorough - moved reject_all from [check] to [reject] and renamed to all_bounces - updated bounce_spf to use promises ### [1.0.4] - 2025-02-06 - results.isa: change from yes/no to boolean true/false ### [1.0.3] - 2025-01-30 - dep(all): bump to latest - dep(eslint): upgrade to v9 - doc(CONTRIBUTORS): added ### [1.0.2] - 2024-04-29 - repackaged from haraka/Haraka as NPM module [1.0.1]: https://github.com/haraka/haraka-plugin-bounce/releases/tag/1.0.1 [1.0.2]: https://github.com/haraka/haraka-plugin-bounce/releases/tag/v1.0.2 [1.0.3]: https://github.com/haraka/haraka-plugin-bounce/releases/tag/v1.0.3 [1.0.4]: https://github.com/haraka/haraka-plugin-bounce/releases/tag/v1.0.4 [1.0.5]: https://github.com/haraka/haraka-plugin-bounce/releases/tag/v1.0.5 [2.0.0]: https://github.com/haraka/haraka-plugin-bounce/releases/tag/v2.0.0 [2.0.1]: https://github.com/haraka/haraka-plugin-bounce/releases/tag/v2.0.1