Skip to content

Latest commit

 

History

History
913 lines (660 loc) · 86.5 KB

File metadata and controls

913 lines (660 loc) · 86.5 KB

CHANGELOG

This file contains all the latest changes and updates to Postal.

3.5.2 (2025-11-24)

Bug Fixes

  • add documentation configuration options for DKIM key size and Truemail integration (c993a9e)

3.5.1 (2025-11-10)

Features

  • add "postal:update" task (b35eea6)
  • add comprehensive MTA-STS configuration and setup guide (7a0f509)
  • add Copilot instructions and update .gitignore (5ec2fd0)
  • add health server and prometheus metrics to worker (a2eb70e)
  • add helm env var config exporter (8938988)
  • add option to delay starting processes until all migrations are run (1c5ff5a)
  • add priority field to server model validation and update related job processing logic (0818faa)
  • add prometheus metrics to smtp server (2e7b36c)
  • add prometheus metrics to worker (bea7450)
  • add sha256 signatures to outgoing http requests (#2874) (96d7365)
  • add Truemail validation feature and configuration options (9a0bdb8)
  • add workflow to sync upstream pull requests automatically (0d19f1e)
  • add workflow to sync upstream pull requests automatically (7376fdb)
  • add workflow to sync upstream pull requests automatically (b52332d)
  • add workflow to sync upstream pull requests automatically (bb3ba2b)
  • add workflow to sync upstream pull requests automatically (8feccfc)
  • add workflow to sync upstream pull requests automatically (546ee24)
  • add workflow to sync upstream pull requests automatically (d9c8644)
  • add workflow to sync upstream pull requests automatically (37200ac)
  • add workflow to sync upstream pull requests automatically (70a8e50)
  • add workflow to sync upstream pull requests automatically (27cf9f9)
  • add workflow to sync upstream pull requests automatically (fb35547)
  • add workflow to sync upstream pull requests automatically (e74f3e5)
  • add workflow to sync upstream pull requests automatically (f001870)
  • add workflow to sync upstream pull requests automatically (e95e972)
  • add workflow to sync upstream pull requests automatically (265d425)
  • add workflow to sync upstream pull requests automatically (e72b918)
  • add workflow to sync upstream pull requests automatically (2b4e9f0)
  • automatically remove queued messages with stale locks (#2872) (d84152e)
  • configurable trusted proxies for web requests (3785c99)
  • enhance MTA-STS and TLS-RPT management UI with improved checkbox styling and user feedback (619223c)
  • enhance MTA-STS policy handling and improve logging for public endpoint (cde7a90)
  • implement MTA-STS and TLS-RPT management for enhanced email security (ada5157)
  • include list-unsubscribe-post header in dkim signatures (e1bae60), closes #2789 #2788
  • load signing key path from POSTAL_SIGNING_KEY_PATH (4a46f69)
  • more consistent logging (044058d)
  • new background work process (dc8e895)
  • new configuration system (and schema) (#2819) (0163ac3)
  • only accept RFC-compliant End-of-DATA sequence (0140dc4)
  • openid connect support (#2873) (5ed94f6)
  • privacy mode (15f9671)
  • prometheus: add postal_message_queue_latency metric (ee8d829)
  • remove strip_received_headers config option (ed2e62b)
  • smtp: add config option to disable sending email via ipv6 (1e28f97)
  • support for additional SMTP client options (0daa667)
  • support for configuring postal with environment variables (854aa5e)
  • update CI workflow to trigger on pull requests and adjust build push behavior (6766684)
  • update schema to include truemail_enabled boolean field (0c4e036)
  • worker: allow number of threads to be configured (7e2accc)
  • worker: scale connection pool with worker threads (ea542a0)

Bug Fixes

  • add ruby platform to gemfile (1fceef7)
  • adds new connection pool which will discard failed clients (54306a9), closes #2780
  • default to listening on all addresses when using legacy config (48f6494)
  • don't override paths in dockerfile (9399e32)
  • don't use authentication on org & server deletion (be45652)
  • don't use indifferent access for job params (2bad645), closes #2477 #2714 #2476 #2500
  • duplicate string before modifying it to prevent frozen string errors (f0a8aca)
  • ensure encoding is set for message db (ae30cc7)
  • explicitly disable TLS & starttls for unknown SSL modes (42ab5b3), closes #2564
  • extract x-postal-tag before holding (6b2bf90), closes #2684
  • fix postal version command (4fa88ac)
  • fix bug in smtp server when exceptions occur (9dd00f6)
  • fix bug with received header in SMTP server (ba5bfbd)
  • fix issue running message pruning task (3a33e53)
  • fix issue with sending mail when smtp relays are configured (6dd6e29)
  • fix smtp TLS (defb511)
  • fixed typo (rfc number) (2f62baa)
  • fixes postal default-dkim-record (58dddeb)
  • fixes error messages in web ui (71f51db)
  • fixes issue starting application in production mode (4528a14)
  • fixes issue with SMTP sender with address endpoints (2621a19)
  • fixes potential issue if machine hostname cannot be determined (0fcf778)
  • fixes typo in on track domains page (77bd77b)
  • health_server: use rackup handler instead of rack handler (7c47422)
  • ignore message DB migrations in autoloader (3fb40e4)
  • legacy-api: allow _expansions to be provided as true to return all expansions (39f704c), closes #2932
  • mail view encoding issue #2462 (#2596) (59f4478)
  • match IPv4 mapped IPv6 addresses when searching for SMTP-IP credentials (8b525d0)
  • message-dequeuer: ability to disable batching (4fcb9e9)
  • message-dequeuer: ensure SMTP endpoints are sent to SMTP sender appropriately (e2d642c), closes #2853
  • move tracking middleware before host authorization (49cceaa), closes #2415
  • oidc scopes are invalid when concatenated (#3332) (9c5f96a)
  • raise an error if MX lookup times out during sending (fadca88), closes #2833
  • raise NotImplementedError when no call method on a scheduled task (2b0919c)
  • re-add reconnect: true to database (7bc5230)
  • remove support for setting the 'ssl' option for app-level smtp use (658aa71)
  • remove user email verification (e05f0b3)
  • remove validation_failed from log output in outgoing_message_processor (8394fac)
  • retry mysql connections on message DB pool (f9f7fb3)
  • save state after checking DMARC record (ed9b92b)
  • set correct component in health server log lines (a7a9a18)
  • smtp-sender: ensure relays without a host are excluded (3a56ec8)
  • smtp-sender: fixes SMTPSender.smtp_relays (b3264b9)
  • smtp-server: add additional information to cram-md5 log entries (9982bb8)
  • smtp-server: fixes proxy protocol (9240612)
  • smtp-server: listen on all interfaces by default (d1e5b68), closes #2852
  • smtp-server: remove ::ffff: from the start of ipv4 addresses (0dc7359)
  • smtp-server: reset ansi sequence after logging (9bf6152)
  • translate unicode domain names to Punycode for compatibility with DNS (#2823) (be0df7b)
  • truncate output and details in deliveries to 250 characters (694240d), closes #2831
  • typo in process logging (#3212) (b7e5232)
  • typo in the credentials page (fd3c7cc)
  • ui: fixes typo on queue page (33513a7)
  • unescape in URLs which are stored for tracking (1da1182), closes #2568 #907 #115
  • update CI configuration for modalsource branch and image (1d6e051)
  • update CI configuration for modalsource branch and image (76b474b)
  • update docker-compose commands to use the new syntax (a75b520)
  • update raw headers after changing messages to during parsing (2834e2c), closes #2816
  • update url for v2 config (#3225) (e00098b)
  • update wording about tracking domain cnames (0d3eccb), closes #2808
  • upgrade nokogiri (f05c2e4)
  • use correct method for disconnecting smtp connections (7c23994)
  • use local resolver for DNS tests (github actions blocks DNS seemingly) (a4d039c)
  • use utc timestamps when determining raw table names (ce19bf7)
  • web-server: allow for trusted proxies not be set (4e1deb2)

Documentation

  • add message_db.encoding to config docs (0c1f925)
  • add new repo readme welcome image (afa1726)
  • add quick contributing instructions (8d21adc)
  • process.rb: add help about time unit used by metric (05163a8)
  • process.rb: add help about time unit used by metric (#3339) (f5325c4)
  • update docs for how IP address allocation works (07eb152), closes #2209
  • update readme (df096ab)
  • update SECURITY policy (cfc1c9b)

Styles

  • rubocop: disable complexity cops for now (930cf39)
  • rubocop: disable Style/SpecialGlobalVars (be97f43)
  • rubocop: disable Style/StringConcatenation cop (d508772)
  • rubocop: Layout/* (0e0aca0)
  • rubocop: Layout/EmptyLineAfterMagicComment (0e4ed5c)
  • rubocop: Layout/EmptyLines (0cf35a8)
  • rubocop: Layout/EmptyLinesAroundBlockBody (cfd8d63)
  • rubocop: Layout/LeadingCommentSpace (59f299b)
  • rubocop: Layout/LineLength (e142d0d)
  • rubocop: Layout/MultilineMethodCallBraceLayout (a5d5ba5)
  • rubocop: Lint/DuplicateBranch (a1dc0f7)
  • rubocop: Lint/DuplicateMethods (bab6346)
  • rubocop: Lint/IneffectiveAccessModifier (6ad56ee)
  • rubocop: Lint/MissingSuper (4674e63)
  • rubocop: Lint/RedundantStringCoercion (12a5ef3)
  • rubocop: Lint/ShadowedException (0966b44)
  • rubocop: Lint/ShadowingOuterLocalVariable (7119e86)
  • rubocop: Lint/SuppressedException (278ef08)
  • rubocop: Lint/UnderscorePrefixedVariableName (ec7dcf4)
  • rubocop: Lint/UnusedBlockArgument (ee94e4e)
  • rubocop: Lint/UselessAssignment (7590a46)
  • rubocop: Naming/FileName (919a601)
  • rubocop: Naming/MemoizedInstanceVariableName (9563f30)
  • rubocop: relax method length and block nexting for now (b0ac9ef)
  • rubocop: remaining offences (ec63666)
  • rubocop: Security/YAMLLoad (389ea77)
  • rubocop: Style/AndOr (b9f3f31)
  • rubocop: Style/ClassAndModuleChildren (e896f46)
  • rubocop: Style/For (04a3483)
  • rubocop: Style/FrozenStringLiteralComment (6ab36c0)
  • rubocop: Style/GlobalStdStream (75be690)
  • rubocop: Style/GlobalVars (157d114)
  • rubocop: Style/HashEachMethods (c995027)
  • rubocop: Style/HashExcept (83ac764)
  • rubocop: Style/IdenticalConditionalBranches (6a58ecf)
  • rubocop: Style/MissingRespondToMissing (ffcb707)
  • rubocop: Style/MultilineBlockChain (c6326a6)
  • rubocop: Style/MutableConstant (129dffa)
  • rubocop: Style/NumericPredicate (c558f1c)
  • rubocop: Style/PreferredHashMethods (013b3ea)
  • rubocop: Style/SafeNavigation (00a02f2)
  • rubocop: Style/SelectByRegexp (9ce28a4)
  • rubocop: Style/StringLiterals (b4cc812)
  • rubocop: Style/TrailingCommaInArrayLiteral (4e13577)
  • rubocop: Style/WordArray (bd85920)
  • rubocop: update rubocop rules (6d4dea7)
  • rubocop: use _ when not using a variable in helm config exporter (2c20ba6)

Miscellaneous Chores

  • add annotations to factories and models specs (ed6da11)
  • add arm64 platform (de88201)
  • add binstubs for bundle and rspec (41f6cf4)
  • add script for generating smtp TLS certificates (6eb16c3)
  • add script to send html emails to a local SMTP server (8794a2f)
  • allow config location message to be suppressed (f760cdb)
  • annotate models (6214892)
  • build: fixes docker login action credentials (8810856)
  • build: improve build process, add release please (#2414) (5222263)
  • config-docs: update docs for latest oidc defaults (364eba6)
  • config-docs: update proxy protocol to mention v1 (45dd8aa)
  • consolidate platforms in Gemfile (7963c8a)
  • container: add the branch name to the container (bee5098)
  • deps: upgrade puma, net-imap and other deps (c03c44b)
  • dockerfile: reduce container size (86de372)
  • gha: upgrade github checkout action, don't create arm images for CI, add qemu (a9ade3c)
  • github-actions: add 'docs' label to exclude from staleness checks (57b72fb)
  • github-actions: add action to close stale issues and PRs (d90a456)
  • github-actions: allow stale action to be run on demand (559b08d)
  • github-actions: don't generate commit- tags (d65bbe0)
  • github-actions: don't run for dependabot or release-please PRs and fetch whole repo (adaf2b0)
  • github-actions: include a version string on branch-*/latest images (64bc7dc)
  • hide further config messages (1c67f72)
  • main-modalsource: release 3.4.0 (593fb53)
  • main-modalsource: release 3.4.0 (593fb53)
  • main-modalsource: release 3.4.0 (7463b54)
  • main-modalsource: release 3.5.0 (2bd7fe1)
  • main: release 2.1.5 (#2461) (64cab2e)
  • main: release 2.1.6 (#2765) (26aae29)
  • main: release 2.2.0 (#2766) (ff901e9)
  • main: release 2.2.1 (#2773) (304828a)
  • main: release 2.2.2 (#2783) (19e3bc2)
  • main: release 2.3.0 (b8bab1b)
  • main: release 2.3.1 (#2812) (18ba714)
  • main: release 2.3.2 (343292b)
  • main: release 3.0.0 (7030fd5)
  • main: release 3.0.1 (7fd538d)
  • main: release 3.0.2 (93cbe31)
  • main: release 3.1.0 (4acfffd)
  • main: release 3.1.1 (#2859) (4c27bae)
  • main: release 3.2.0 (#2867) (8e71dd0)
  • main: release 3.2.1 (#2877) (144af20)
  • main: release 3.2.2 (#2878) (6a1ff56)
  • main: release 3.3.0 (#2887) (eded789)
  • main: release 3.3.1 (#2890) (a3fab36)
  • main: release 3.3.2 (#2892) (c12f30e)
  • main: release 3.3.3 (#2933) (d510499)
  • main: release 3.3.4 (#3014) (da90e75)
  • reduce threads for bundling in docker (5b022b9)
  • regenerate config docs (5d8213a)
  • release 3.0.0 (47b203c)
  • release 3.5.1 (5da0395)
  • remove -j4 from bundle install as it shouldn't be needed (0b468f9)
  • remove non-breaking spaces from comments (27b7ced)
  • remove old example messages (9db781c), closes #2635 #2627
  • remove version from docker-compose.yml (c78000c)
  • removing arm64 support until we can get a reasonable build pipeline sorted (e8e44f5)
  • silence message DB migrations during provisioning (c83601a)
  • suppress config location on default-dkim-record (aa76aae)
  • ui: display branch in footer if present (1823617)
  • update CHANGELOG about v3 (fd33e21)
  • update CI permissions to allow issue and pull request management (bf9af25)
  • update MIT-LICENCE (dbd0e27)
  • update release please to include more categories in changelog (e156c21)
  • update schema version and add DMARC status fields (a14a711)
  • upgrade bundler to 2.5.6 (1ae8ef6)
  • upgrade puma (3f1343b)
  • upgrade rails to 6.1.7.6 (409a4a2)
  • upgrade rails to 7.0 and other dependencies (ecd09a2)
  • upgrade resolv to 0.6.2 (d00d978)
  • upgrade ruby to 3.2.2 and nodejs to 20.x (72715fe)
  • upgrade to rails 7.1 and ruby 3.4 (#3457) (ab6d443)
  • upgrade uri gem to 1.0.3 (f193b8e)

Code Refactoring

  • be less verbose with message DB migrations (90d3a3f)
  • change domain used for dns resolver testing (87d35d7)
  • move app/util/* to app/lib/ (eb246bb)
  • move lib/postal/received_header to app/lib/received_header (e3bc9da)
  • move lib/postal/reply_separator to app/lib/reply_separator (5cc9eb3)
  • move lib/postal/smtp_server to app/lib/smtp_server (321ab95)
  • move lib/postal/user_creator to app/util/user_creator (64b2704)
  • move Postal::BounceMessage to app/models/bounce_message (05d2ec4)
  • move Postal::DKIMHeader to app/util/dkim_header (77faf88)
  • move Postal::QueryString to app/util/query_string (870b26c)
  • move senders in to app/senders/ (73a55a5)
  • move tracking middleware (b8ad732)
  • move worker from lib/worker to app/lib/worker (93fc120)
  • refactor DNS resolution (1a41586)
  • refactor log use within SMTP server (cae4b63), closes #2794 #2791
  • refactor the SMTP sender (633c509)
  • refactor webhook deliveries (e0403ba)
  • refactors message dequeueing (#2810) (a44e1f9)
  • remove explicit autoload (0f9882f)
  • remove moonrope but maintain legacy API actions (#2889) (4d9654d)
  • remove Postal::Job.perform method (990b575)
  • remove Postal.database_url (96ba4b8)
  • remove reloading on the smtp server (c3c304e)
  • remove token logins (b89e0a9)
  • remove unnecessary modules (38465de)
  • remove unused UserController#join method (1ca18db)
  • switch to use SecureRandom for random strings (ce30c07)
  • versioning: improve how current version and branch is determined and set (07c6b31)

Tests

  • add initial tests for Postal::SMTPServer::Client (dece1d4)
  • add smtp sender test for MX lookup timeouts (e4638a0)
  • add specs for Truemail email validation process and logging (dcd0b2c)
  • add test for multiline headers (77e818a)
  • add tests for DNSResolver (8765d8e)
  • add tests for message unqueueing (b4016f6)
  • add tests for Server model (2023200)
  • add tests for the legacy API (3d208d6)
  • additional tests for batched messages when unqueueing messages (8b61100)
  • FactoryBot.lint will lint all registered factories (25d7d66)
  • fix test that was failing due to time differences (465f4d8)
  • move Postal::RpecHelpers to spec/helpers (ee86311)
  • move TestLogger to spec/helpers (3bbbc70)
  • remove FACTORIES_EXCLUDED_FROM_LINT (1cf665a)
  • rename database spec file (b9edcf5)
  • smtp-sender: add more tests for AUTH LOGIN (22dcd49)

Continuous Integration

  • add GITHUB_TOKEN environment variable for consistency in CI configuration (2bb3961)
  • change Docker build target from 'ci' to 'full' in CI configuration (c185d08)
  • replace GITHUB_TOKEN with REPO_ACCESS_TOKEN in CI configuration (d69d7b4)
  • update Docker actions to version 3 and add truemail-client gem (1ef1030)
  • update permissions for GitHub Actions workflow (68dd5cc)

3.5.0 (2025-11-10)

Features

  • add comprehensive MTA-STS configuration and setup guide (7a0f509)
  • add priority field to server model validation and update related job processing logic (0818faa)
  • add workflow to sync upstream pull requests automatically (0d19f1e)
  • add workflow to sync upstream pull requests automatically (7376fdb)
  • add workflow to sync upstream pull requests automatically (b52332d)
  • add workflow to sync upstream pull requests automatically (bb3ba2b)
  • add workflow to sync upstream pull requests automatically (8feccfc)
  • add workflow to sync upstream pull requests automatically (546ee24)
  • add workflow to sync upstream pull requests automatically (d9c8644)
  • add workflow to sync upstream pull requests automatically (37200ac)
  • add workflow to sync upstream pull requests automatically (70a8e50)
  • add workflow to sync upstream pull requests automatically (27cf9f9)
  • add workflow to sync upstream pull requests automatically (fb35547)
  • add workflow to sync upstream pull requests automatically (e74f3e5)
  • add workflow to sync upstream pull requests automatically (f001870)
  • add workflow to sync upstream pull requests automatically (e95e972)
  • add workflow to sync upstream pull requests automatically (265d425)
  • add workflow to sync upstream pull requests automatically (e72b918)
  • add workflow to sync upstream pull requests automatically (2b4e9f0)
  • enhance MTA-STS and TLS-RPT management UI with improved checkbox styling and user feedback (619223c)
  • enhance MTA-STS policy handling and improve logging for public endpoint (cde7a90)
  • implement MTA-STS and TLS-RPT management for enhanced email security (ada5157)
  • update CI workflow to trigger on pull requests and adjust build push behavior (6766684)

Bug Fixes

  • health_server: use rackup handler instead of rack handler (7c47422)
  • save state after checking DMARC record (ed9b92b)
  • typo in process logging (#3212) (b7e5232)
  • update url for v2 config (#3225) (e00098b)

Documentation

  • process.rb: add help about time unit used by metric (#3339) (f5325c4)

Miscellaneous Chores

  • deps: upgrade puma, net-imap and other deps (c03c44b)
  • dockerfile: reduce container size (86de372)
  • remove version from docker-compose.yml (c78000c)
  • upgrade resolv to 0.6.2 (d00d978)
  • upgrade to rails 7.1 and ruby 3.4 (#3457) (ab6d443)
  • upgrade uri gem to 1.0.3 (f193b8e)

Continuous Integration

  • add GITHUB_TOKEN environment variable for consistency in CI configuration (2bb3961)
  • change Docker build target from 'ci' to 'full' in CI configuration (c185d08)
  • replace GITHUB_TOKEN with REPO_ACCESS_TOKEN in CI configuration (d69d7b4)
  • update Docker actions to version 3 and add truemail-client gem (1ef1030)
  • update permissions for GitHub Actions workflow (68dd5cc)

3.4.0 (2025-07-17)

Features

  • add Copilot instructions and update .gitignore (5ec2fd0)
  • add Truemail validation feature and configuration options (9a0bdb8)
  • update schema to include truemail_enabled boolean field (0c4e036)

Bug Fixes

  • oidc scopes are invalid when concatenated (#3332) (9c5f96a)
  • remove validation_failed from log output in outgoing_message_processor (8394fac)
  • typo in the credentials page (fd3c7cc)
  • update CI configuration for modalsource branch and image (1d6e051)
  • update CI configuration for modalsource branch and image (76b474b)
  • update docker-compose commands to use the new syntax (a75b520)

Tests

  • add specs for Truemail email validation process and logging (dcd0b2c)

3.3.4 (2024-06-20)

Bug Fixes

  • fix postal version command (4fa88ac)
  • fix issue running message pruning task (3a33e53)
  • raise NotImplementedError when no call method on a scheduled task (2b0919c)

3.3.3 (2024-04-18)

Bug Fixes

  • legacy-api: allow _expansions to be provided as true to return all expansions (39f704c), closes #2932

3.3.2 (2024-03-21)

Code Refactoring

  • versioning: improve how current version and branch is determined and set (07c6b31)

3.3.1 (2024-03-21)

Bug Fixes

  • smtp-sender: ensure relays without a host are excluded (3a56ec8)
  • smtp-sender: fixes SMTPSender.smtp_relays (b3264b9)

Miscellaneous Chores

  • container: add the branch name to the container (bee5098)
  • github-actions: don't generate commit- tags (d65bbe0)
  • github-actions: don't run for dependabot or release-please PRs and fetch whole repo (adaf2b0)
  • github-actions: include a version string on branch-*/latest images (64bc7dc)
  • ui: display branch in footer if present (1823617)

Code Refactoring

  • remove moonrope but maintain legacy API actions (#2889) (4d9654d)

3.3.0 (2024-03-18)

Features

  • prometheus: add postal_message_queue_latency metric (ee8d829)
  • worker: allow number of threads to be configured (7e2accc)
  • worker: scale connection pool with worker threads (ea542a0)

Bug Fixes

  • message-dequeuer: ability to disable batching (4fcb9e9)

Miscellaneous Chores

  • config-docs: update docs for latest oidc defaults (364eba6)
  • config-docs: update proxy protocol to mention v1 (45dd8aa)

3.2.2 (2024-03-14)

Bug Fixes

  • don't use authentication on org & server deletion (be45652)
  • smtp-server: fixes proxy protocol (9240612)

Miscellaneous Chores

  • allow config location message to be suppressed (f760cdb)
  • hide further config messages (1c67f72)
  • suppress config location on default-dkim-record (aa76aae)

Tests

  • add tests for the legacy API (3d208d6)

3.2.1 (2024-03-13)

Bug Fixes

  • fixes postal default-dkim-record (58dddeb)

3.2.0 (2024-03-13)

Features

  • add sha256 signatures to outgoing http requests (#2874) (96d7365)
  • automatically remove queued messages with stale locks (#2872) (d84152e)
  • openid connect support (#2873) (5ed94f6)

Bug Fixes

  • smtp-server: add additional information to cram-md5 log entries (9982bb8)

Styles

  • rubocop: Style/TrailingCommaInArrayLiteral (4e13577)

Miscellaneous Chores

3.1.1 (2024-03-08)

Bug Fixes

  • don't override paths in dockerfile (9399e32)

Tests

  • smtp-sender: add more tests for AUTH LOGIN (22dcd49)

3.1.0 (2024-03-06)

Features

  • configurable trusted proxies for web requests (3785c99)

Bug Fixes

  • message-dequeuer: ensure SMTP endpoints are sent to SMTP sender appropriately (e2d642c), closes #2853
  • smtp-server: listen on all interfaces by default (d1e5b68), closes #2852
  • smtp-server: remove ::ffff: from the start of ipv4 addresses (0dc7359)
  • smtp-server: reset ansi sequence after logging (9bf6152)
  • ui: fixes typo on queue page (33513a7)
  • web-server: allow for trusted proxies not be set (4e1deb2)

Styles

  • rubocop: use _ when not using a variable in helm config exporter (2c20ba6)

3.0.2 (2024-03-05)

Bug Fixes

  • default to listening on all addresses when using legacy config (48f6494)

Miscellaneous Chores

  • removing arm64 support until we can get a reasonable build pipeline sorted (e8e44f5)

3.0.1 (2024-03-05)

Bug Fixes

  • fix issue with sending mail when smtp relays are configured (6dd6e29)

3.0.0 (2024-03-04)

This version of Postal introduces a number of larger changes. Please be sure to follow the upgrade guide when upgrading to Postal v3. Highlights include:

  • Removal of RabbitMQ dependency
  • Removal of cron and requeuer processes
  • Improved logging
  • Improved configuration
  • Adds prometheus metric exporters for workers and SMTP servers
  • Only accepted RFC-compliant end-of-DATA sequences (to avoid SMTP smuggling)

Features

  • add health server and prometheus metrics to worker (a2eb70e)
  • add option to delay starting processes until all migrations are run (1c5ff5a)
  • add prometheus metrics to smtp server (2e7b36c)
  • add prometheus metrics to worker (bea7450)
  • more consistent logging (044058d)
  • new background work process (dc8e895)
  • new configuration system (and schema) (#2819) (0163ac3)
  • only accept RFC-compliant End-of-DATA sequence (0140dc4)
  • add "postal:update" task (b35eea6)
  • add helm env var config exporter (8938988)
  • include list-unsubscribe-post header in dkim signatures (e1bae60), closes #2789 #2788
  • support for additional SMTP client options (0daa667)

Bug Fixes

  • fixes potential issue if machine hostname cannot be determined (0fcf778)
  • raise an error if MX lookup times out during sending (fadca88), closes #2833
  • set correct component in health server log lines (a7a9a18)
  • translate unicode domain names to Punycode for compatibility with DNS (#2823) (be0df7b)
  • remove user email verification (e05f0b3)
  • unescape in URLs which are stored for tracking (1da1182), closes #2568 #907 #115
  • update wording about tracking domain cnames (0d3eccb), closes #2808

Documentation

  • add message_db.encoding to config docs (0c1f925)
  • add new repo readme welcome image (afa1726)
  • add quick contributing instructions (8d21adc)
  • update SECURITY policy (cfc1c9b)
  • update docs for how IP address allocation works (07eb152), closes #2209

Miscellaneous Chores

  • upgrade bundler to 2.5.6 (1ae8ef6)
  • upgrade rails to 7.0 and other dependencies (ecd09a2)
  • upgrade ruby to 3.2.2 and nodejs to 20.x (72715fe)

2.3.2 (2024-03-01)

Bug Fixes

  • truncate output and details in deliveries to 250 characters (694240d), closes #2831

2.3.1 (2024-02-23)

Bug Fixes

  • update raw headers after changing messages to during parsing (2834e2c), closes #2816

Miscellaneous Chores

  • github-actions: add 'docs' label to exclude from staleness checks (57b72fb)
  • github-actions: add action to close stale issues and PRs (d90a456)
  • github-actions: allow stale action to be run on demand (559b08d)

2.3.0 (2024-02-13)

Features

  • privacy mode (15f9671)
  • remove strip_received_headers config option (ed2e62b)

Bug Fixes

  • add ruby platform to gemfile (1fceef7)
  • explicitly disable TLS & starttls for unknown SSL modes (42ab5b3), closes #2564
  • fix bug with received header in SMTP server (ba5bfbd)
  • retry mysql connections on message DB pool (f9f7fb3)
  • use correct method for disconnecting smtp connections (7c23994)

Styles

  • rubocop: disable complexity cops for now (930cf39)
  • rubocop: disable Style/SpecialGlobalVars (be97f43)
  • rubocop: disable Style/StringConcatenation cop (d508772)
  • rubocop: Layout/* (0e0aca0)
  • rubocop: Layout/EmptyLineAfterMagicComment (0e4ed5c)
  • rubocop: Layout/EmptyLines (0cf35a8)
  • rubocop: Layout/EmptyLinesAroundBlockBody (cfd8d63)
  • rubocop: Layout/LeadingCommentSpace (59f299b)
  • rubocop: Layout/LineLength (e142d0d)
  • rubocop: Layout/MultilineMethodCallBraceLayout (a5d5ba5)
  • rubocop: Lint/DuplicateBranch (a1dc0f7)
  • rubocop: Lint/DuplicateMethods (bab6346)
  • rubocop: Lint/IneffectiveAccessModifier (6ad56ee)
  • rubocop: Lint/MissingSuper (4674e63)
  • rubocop: Lint/RedundantStringCoercion (12a5ef3)
  • rubocop: Lint/ShadowedException (0966b44)
  • rubocop: Lint/ShadowingOuterLocalVariable (7119e86)
  • rubocop: Lint/SuppressedException (278ef08)
  • rubocop: Lint/UnderscorePrefixedVariableName (ec7dcf4)
  • rubocop: Lint/UnusedBlockArgument (ee94e4e)
  • rubocop: Lint/UselessAssignment (7590a46)
  • rubocop: Naming/FileName (919a601)
  • rubocop: Naming/MemoizedInstanceVariableName (9563f30)
  • rubocop: relax method length and block nexting for now (b0ac9ef)
  • rubocop: remaining offences (ec63666)
  • rubocop: Security/YAMLLoad (389ea77)
  • rubocop: Style/AndOr (b9f3f31)
  • rubocop: Style/ClassAndModuleChildren (e896f46)
  • rubocop: Style/For (04a3483)
  • rubocop: Style/FrozenStringLiteralComment (6ab36c0)
  • rubocop: Style/GlobalStdStream (75be690)
  • rubocop: Style/GlobalVars (157d114)
  • rubocop: Style/HashEachMethods (c995027)
  • rubocop: Style/HashExcept (83ac764)
  • rubocop: Style/IdenticalConditionalBranches (6a58ecf)
  • rubocop: Style/MissingRespondToMissing (ffcb707)
  • rubocop: Style/MultilineBlockChain (c6326a6)
  • rubocop: Style/MutableConstant (129dffa)
  • rubocop: Style/NumericPredicate (c558f1c)
  • rubocop: Style/PreferredHashMethods (013b3ea)
  • rubocop: Style/SafeNavigation (00a02f2)
  • rubocop: Style/SelectByRegexp (9ce28a4)
  • rubocop: Style/StringLiterals (b4cc812)
  • rubocop: Style/WordArray (bd85920)
  • rubocop: update rubocop rules (6d4dea7)

Miscellaneous Chores

  • annotate models (6214892)
  • silence message DB migrations during provisioning (c83601a)

Code Refactoring

  • remove reloading on the smtp server (c3c304e)

Tests

  • add initial tests for Postal::SMTPServer::Client (dece1d4)
  • FactoryBot.lint will lint all registered factories (25d7d66)
  • remove FACTORIES_EXCLUDED_FROM_LINT (1cf665a)

2.2.2 (2024-02-06)

Bug Fixes

  • adds new connection pool which will discard failed clients (54306a9), closes #2780
  • re-add reconnect: true to database (7bc5230)
  • upgrade nokogiri (f05c2e4)

Tests

  • rename database spec file (b9edcf5)

2.2.1 (2024-02-03)

Bug Fixes

  • fixes issue starting application in production mode (4528a14)

Code Refactoring

  • remove Postal.database_url (96ba4b8)

2.2.0 (2024-02-01)

Features

  • load signing key path from POSTAL_SIGNING_KEY_PATH (4a46f69)
  • support for configuring postal with environment variables (854aa5e)

Bug Fixes

  • don't use indifferent access for job params (2bad645), closes #2477 #2714 #2476 #2500
  • extract x-postal-tag before holding (6b2bf90), closes #2684
  • fixes error messages in web ui (71f51db)
  • ignore message DB migrations in autoloader (3fb40e4)
  • move tracking middleware before host authorization (49cceaa), closes #2415
  • use utc timestamps when determining raw table names (ce19bf7)

Miscellaneous Chores

  • add binstubs for bundle and rspec (41f6cf4)
  • add script to send html emails to a local SMTP server (8794a2f)

Code Refactoring

  • remove explicit autoload (0f9882f)
  • remove Postal::Job.perform method (990b575)

2.1.6 (2024-01-30)

Miscellaneous Chores

  • build: fixes docker login action credentials (8810856)
  • update release please to include more categories in changelog (e156c21)

2.1.5 (2024-01-30)

Bug Fixes

  • duplicate string before modifying it to prevent frozen string errors (f0a8aca)
  • fixed typo (rfc number) (2f62baa)
  • fixes typo in on track domains page (77bd77b)
  • mail view encoding issue #2462 (#2596) (59f4478)
  • match IPv4 mapped IPv6 addresses when searching for SMTP-IP credentials (8b525d0)

2.1.4

Bug Fixes

  • Move RubyVer functionality to Utilities module (5998bf)

2.1.3

Features

  • Upgrade to Ruby 3.2.1 & Rails 6.1 (957b78)
  • Make resent-sender header optional (c6fb8d)
  • Log CRAM-MD5 authentication failures (9b1ed1)
  • Always use multipart/alternative parts in generated emails (d0db13)

Bug Fixes

  • Use non-blocking function to negotiate TLS connections (a7dd19)
  • Fix to newline conversion process (9f4ef8)
  • Remove custom scrollbars (b22f1b)
  • Truncate 'output' field to avoid overflowing varchar(512) in database (a188a1)
  • Fix link replacement in multipart messsages (7ea00d)
  • Fix confusing error message when deleting IP pools (cefc7d)
  • Connect to correct IP rather than hostname suring SMTP delivery (159509)
  • Change retry timings to avoid re-sending messages too early (c8d27b)

2.1.2

Features

  • support for AMQPS for rabbitmq connections (9f0697)

Bug Fixes

  • retry connections without SSL when SSL issue is encountered during smtp sending (0dc682)

2.1.1

Features

  • allow @ and % in webhook urls (c60c69)

Bug Fixes

  • fixes broken styling on errors (a0c87e)
  • use the Postal logger system for the rails log (5b04fa)

2.1.0

Features

  • support for configuring the default spam threshold values for new servers (724325)
  • support for using rspamd for spam filtering (a1277b)

Bug Fixes

  • dkim: fixes timing race condition when signing emails (232b60)
  • docker: fixes issue caused by changes to underlying ruby:2.6 image (6570ff)

2.0.0

Features

  • ui: add footer with links to docs and discussions (1247da)

Bug Fixes

  • dkim: ensure DKIM-Signature headers are appropriately wrapped (476129)
  • docs: update port numbers to specify the actual port number the SMTP server is listening on (4404b3)
  • logging: fix spelling of graylog (2a11e0)

2.0.0-beta.1

Features

  • config: support for loading a postal.local.yml config file from the config root if it exists (8e3294)
  • smtp_server: allow bind address to be configured (4a410c)
  • add priorities to IP address assignment (21a8d8)

Bug Fixes

  • dkim: fixes bug with signing dkim bodies (189dfa)
  • smtp_server: attempt to redact plain-text passwords from log output (fcb636)
  • smtp_server: fixes issue with malformed rcpt to (e0ba05)
  • smtp_server: refactor mx lookups to randomly order mx records with the same priority (bc2239)
  • smtp_server: updated line split logic, normalize all linebreaks to \r\n (e8ba9e)
  • add resolv 0.2.1 (eef1a3)
  • always obey POSTAL_CONFIG_ROOT (1d22ca)
  • fix issue with determining if an SMTP connection is encrypted or not (73870d)
  • remove a few leftover fast server artifacts (5cd06e)
  • replace Fixnum with Integer (52a23f)