Skip to main content

MSH Postfix Milter Release History

Track our product's evolution and improvements

v1.2.0 - Feature Release

Released: September 10, 2026

Import of settings from the earlier MSH applications, automatic license synchronisation, matching by group membership, a template language with conditions and loops, Java 21, and a number of fixes.

New features

Import of settings from the earlier MSH applications

The Settings node has a new Import legacy settings section with one button per application: MSH Traffic Policy, MSH Disclaimer & Signatures and MSH Autoresponder. Choose either the settings.xml of the installation, with its templates directory next to it, or a tgz archive of the whole etc directory - the import tells the two apart by content, not by file name.

  • Imported rules are added to the rules you already have; nothing is replaced. A rule whose id is already taken gets one of its own, a template whose id is already in use is kept as it is, and positioning patterns are added to the ones already set.
  • Every condition and action of the three applications comes across, including the ones whose shape changed since: matching a directory user or group, the envelope sender and recipient conditions, the message counting conditions, the envelope recipient actions and the new message action with its attachments and headers.
  • A time range a legacy rule had among its conditions becomes the rule's schedule. A time range that was switched off is reported rather than imported.
  • Variables are rewritten into the current syntax: ${message:subject} becomes {message:subject}, a directory attribute such as ${ldap:HomePhone} becomes the user attribute token that holds it, and the bare Autoresponder variables ($SUBJECT, $FIRSTNAME, $CITY, ...) become tokens as well.
  • Autoresponder replies written inline in the legacy file become templates of their own, named after their rule. Loop protection keeps its count, interval and unit.
  • The import closes with a report: how many rules and templates arrived per section, and everything it could not bring across.

🔗

License synchronised when a server connects

When the administrator connects to a server, the licence that came with the connection is sent to the license server and a renewed or extended key is saved right away - the same request the Get license key button sends, without anyone pressing it. A DEMO licence is left alone; the first demo key stays a manual request. The sync runs in the background and never shows a dialog. 🔗

Matching by group membership

  • In Group is available on both the sender and the recipient condition, and on the message counting conditions. 🔗
  • Group members may be given as e-mail addresses as well as user ids in a groups CSV file. 🔗

Template language

Templates, subjects, headers and autoreply texts can use conditions, comparisons and loops: show a line only when the user has a mobile number, compare a value with eq, lt, gte and the rest, chain conditions with {else if ...}, and iterate message collections - {#each message:attachments}, {#each message:headers}, {#each message:recipients} - with {else} for the empty case. The template preview renders the same syntax, so what you see in the designer is what will be sent. 🔗

Changes

  • Conditions: the sender and recipient conditions say In Group and In Domain for matching by membership and by domain, both on the radio buttons and in the rule list, keeping the word Group for matching the address of the group itself. 🔗
  • Templates: a signature or disclaimer inserted into a message body is separated from it by a blank line in HTML as well as in plain text.
  • Templates: are always rendered by the current template engine; the older variable scanner it used to fall back to is gone.
  • Action hints: say variables instead of advanced variables.
  • Java: the application runs on Java 21. Install Java 21 or newer before updating the server module or the administrator panel. 🔗

Fixes

  • Adding an attachment to a message could break its formatting: a multipart/alternative body was emitted as plain text with the part boundaries visible in the mail client. Messages with embedded images (multipart/related) are handled as well.
  • A rule with a message type condition silently never matched a message without a subject; the condition threw and was recorded as "not matched".
  • New message, Forward and Autoreply stalled for up to 9 seconds per message on servers whose address has no reverse DNS entry, once for the Message-ID and once for the SMTP greeting.
  • What happens after an autoresponder rule - go on or stop when it applied or did not - was neither saved nor obeyed: the editor and the settings reader kept it in one place and the rule engine and the settings writer read another. It is one setting now.
  • A disclaimer, signature or autoresponder rule with no description could be read from a settings file but not saved again; the save threw.

v1.1.0 - Feature Release

Released: July 22, 2026

Settings export and import, stored attachments, five additional policy rule actions, autoresponder attachments, and many improvements and fixes.

New features

Settings export and import

The administrator now has a dedicated Settings node in the tree. From there you can export the complete server configuration - rules, templates, stored attachments, directory service configuration and more - into a single ZIP archive, and import it back later. You choose which sections to include on both export and import, and every import automatically creates a backup of the current settings. 🔗

Stored attachments

A new Attachments node in the admin tree acts as a central store for files you want to work with in rules. Together with it, the Add attachment policy rule action lets a rule attach a stored file to processed messages. In the Rules Tester the attachment is simulated, on the server the real file is attached. 🔗

More policy rule actions

The following rule actions are available again, rebuilt on the current engine:

  • New message - sends a new message from a rule, with a Recipients tab, a body template chosen via the Select dialog, and its own Attachments tab. Sends both HTML and plain-text versions. 🔗
  • Forward message - forwards the processed message. Recipients can be picked from the user list, and an optional separator line can be placed above the forwarded content. 🔗
  • Strip attachments - removes attachments and inserts an information template into the message body. 🔗
  • Save attachments - stores message attachments into a configured directory. 🔗
  • Run executable - runs a configured program for matching messages. 🔗

Autoresponder improvements

  • Autoreplies can include attachments - both stored attachments and files from a server path - via a new Attachments tab in the wizard.
  • An optional reply separator line (for example "On <date> <sender> wrote:") can be placed above the quoted original message.
  • HTML autoreplies are now sent as proper HTML plus plain-text alternatives, and replies to text-only messages get a correctly built HTML body as well.

User photo in templates

  • The {photo} variable accepts size arguments: {photo:200} (width), {photo:200x100} (width and height), {photo:x100} (height only).
  • A new {photoData} variable inserts the raw image data URI, so template authors can write their own img tag around it.
  • The image format (JPEG, PNG, GIF) is detected automatically from the photo data.

Rules Tester

  • Test messages are saved locally per server, so they survive restarting the administrator.
  • A new Actions menu offers Delete and Delete All for test messages.
  • The tester is now strictly simulation-only: it does not write attachments to disk and does not run executables, it only reports what would happen.

Template designer

Template content can be converted between the HTML and text panels in the designer.

Configuration and connectivity

  • The SMTP host and connection timeouts used for sending are configurable through MAIL_SMTP_* entries in the launcher configuration.
  • Connecting to a server no longer blocks the administrator window - a loading dialog is shown while the connection is established.

Online help

Help buttons were added across the application (Settings, Attachments, Demo Mode, Run Executable and more), opening the matching page of the online documentation. Documentation links now use HTTPS and point to the documentation version matching the installed application version.

Changes

  • Scheduler: custom schedule entries now match when any entry applies (OR) instead of requiring all of them at once (AND).
  • Directory services: loading from OpenLDAP, Active Directory or a manual import now writes clear progress information to the logs - connection steps, searches and the number of loaded users, groups and domains.
  • Template preview: images honor their size settings. Width and height attributes, px values and inline CSS sizing are applied, so the preview matches what mail clients will show.
  • Diagnostic logs: replaced variable values in the message processing trace are shortened to 512 characters, so embedded photos no longer flood the logs with image data.
  • Conditions: sender and recipient condition fields hint that multiple values can be separated with semicolons.
  • Attachments list: the dialog is resizable instead of a fixed size.
  • License: uploading a license key file was streamlined.

Fixes

  • An inactive policy rule no longer stops the processing of the rules after it.
  • "Database is locked" errors during the scheduled directory service synchronization were eliminated - the cache database now uses write-ahead logging and writes changes in batches.
  • Messages sent by the server (autoreplies, forwarded and new messages) keep all their headers - previously some headers could be lost while the message was prepared for sending.
  • The user photo is no longer embedded into plain-text message bodies as raw image data.
  • The Run executable action keeps merge fields that contain spaces together as a single argument.
  • Attachment file name lists inserted per line into HTML templates keep their line breaks.
  • The Save attachments action creates missing target directories and resolves file name collisions instead of failing.
  • Reply and compose windows in the Rules Tester show embedded images instead of broken image placeholders.
  • The Demo Mode license is written correctly on a fresh installation where the settings directory does not exist yet.

v1.0.0 - First Stable Release

Released: May 07, 2026

First stable release with all core features implemented.

Key Features:

  • Server module for integration with Postfix mail server
  • Administrator panel for Windows, macOS, and Linux
  • Policy rules - block messages, rewrite subjects, manage recipients, add and remove headers
  • Signature rules - append email signatures based on sender, recipient, direction, and other conditions
  • Disclaimer rules - automatically add legal disclaimers or footers to outgoing messages
  • Autoresponder rules - send automatic replies based on configurable conditions
  • Template designer - create rich HTML email templates with attribute placeholders
  • Directory service integration - import users and groups from Active Directory, OpenLDAP, or CSV files
  • Access control - restrict Administrator Panel access with username and password authentication
  • Rules tester - simulate mail flow and verify rule behaviour without sending real emails
  • Diagnostic logging - trace message processing with configurable retention and sender filters
  • Events history - review a log of all processed messages and applied rules