Postal Versions Save

📮 A fully featured open source mail delivery platform for incoming & outgoing e-mail

3.0.0

1 month ago

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

1 month ago

2.3.2 (2024-03-01)

Bug Fixes

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

2.3.1

2 months ago

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

2 months ago

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

2 months ago

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

2 months ago

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

2 months ago

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

2 months ago

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.4

1 year ago

Bug Fixes

  • Move RubyVer functionality to Utilities module (5998bf)

2.1.3

1 year ago

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)