<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>MSH Software blog</title>
    <description>Practical guides and release news for MSH Software email tools: MSH Postfix Milter, Zimbra disclaimers and signatures, Exchange and Postfix autoresponders, attachment filtering and file cleanup.</description>
    <link>https://www.mshsoftware.com/blog/</link>
    <atom:link href="https://www.mshsoftware.com/blog/feed.xml" rel="self" type="application/rss+xml"/>
    <language>en-us</language>
    <lastBuildDate>Tue, 15 Sep 2026 00:00:00 +0000</lastBuildDate>
    <item>
      <title>MSH Zimbra Rules 1.0 Released</title>
      <description>After several years of building and supporting mail processing tools for Postfix, we are
introducing a solution dedicated to Zimbra Collaboration Suite. MSH Zimbra Rules 1.0 is the first
release of a new generation of the product, rebuilt from the ground up on the experience we gained
with MSH Postfix Milter and the thousands of messages it processes every day.</description>
      <pubDate>Tue, 15 Sep 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/09/15/msh-zimbra-rules-1-0-released.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/09/15/msh-zimbra-rules-1-0-released.html</guid>
      <category>MSH Zimbra Rules</category>
    </item>
    <item>
      <title>Sync User Attributes From Your Directory</title>
      <description>Signatures and personalized messages are only as good as the data behind them. If job titles,
phone numbers and department names are entered by hand, someone forgets to update them after every
reorg, promotion or new hire, and the signatures going out the door quietly drift out of date.</description>
      <pubDate>Mon, 14 Sep 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/09/14/sync-user-attributes-from-your-directory.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/09/14/sync-user-attributes-from-your-directory.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Trace What Happened to a Real Message</title>
      <description>A disclaimer rule that skips a message, an attachment that should have been stripped but was not,
a sender who insists their email never arrived, complaints like these usually land on your desk
hours after the message already left the server. Reproducing the conditions in a test tool only
gets you a guess at what happened, not a record of it.</description>
      <pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/09/07/trace-what-happened-to-a-real-message.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/09/07/trace-what-happened-to-a-real-message.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Run External Scripts When a Rule Matches</title>
      <description>Policy rules can block, tag and rewrite messages on their own, but sometimes a match needs to
trigger something outside the mail flow entirely - a chat notification, a ticket in another
system, or a virus scan tool with no native Postfix integration. Building that hook yourself
usually means writing and maintaining a custom milter just for one integration.</description>
      <pubDate>Mon, 31 Aug 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/08/31/run-external-scripts-on-rule-match.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/08/31/run-external-scripts-on-rule-match.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Test Your Rules Before They Touch Real Mail</title>
      <description>A rule that looks correct in the editor can still behave differently once mail starts flowing through
it. Maybe the condition is narrower than you assumed, maybe another rule in the same group gets there
first. Discovering that from a user complaint is the expensive way to find out.</description>
      <pubDate>Thu, 27 Aug 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/08/27/test-rules-before-real-mail.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/08/27/test-rules-before-real-mail.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Out-of-office autoreplies without reply storms</title>
      <description>Anyone who has ever set up an autoresponder knows the risk: two auto-replying mailboxes can end up
answering each other back and forth indefinitely, and even without a full loop, a busy sender can
end up getting the same out-of-office notice a dozen times in one afternoon.</description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/08/24/autoresponder-without-reply-storms.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/08/24/autoresponder-without-reply-storms.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Strip attachments to a shared folder</title>
      <description>Removing an attachment outright loses information the recipient might actually need. MSH Postfix
Milter’s strip attachments action takes a gentler approach: it removes the attachments from a
matching message, saves them to a folder on the mail server, and inserts a template into the body
in their place explaining what happened.</description>
      <pubDate>Mon, 17 Aug 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/08/17/strip-attachments-to-folder.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/08/17/strip-attachments-to-folder.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Shrink large attachments automatically</title>
      <description>Large attachments add up fast across a whole organization’s mailboxes, and asking employees to zip
files themselves before sending is the kind of habit that never quite sticks. MSH Postfix Milter’s
compress attachments action handles it automatically as messages pass through the server.</description>
      <pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/08/10/compress-large-attachments.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/08/10/compress-large-attachments.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Block dangerous attachment types before they land</title>
      <description>Blocking attachments by file extension alone is easy to get around, renaming a file changes
nothing about what it actually is. MSH Postfix Milter’s remove attachments by type action instead
looks at the real content type of each attachment and strips out anything that matches.</description>
      <pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/08/03/block-dangerous-attachment-types.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/08/03/block-dangerous-attachment-types.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Tag messages with custom headers</title>
      <description>Not every piece of information about a message needs to be visible in the body. MSH Postfix
Milter’s add header action lets a policy rule attach a custom header, name and value, to any
message that matches its conditions, invisibly to the recipient but readable by anything further
down the mail pipeline.</description>
      <pubDate>Mon, 27 Jul 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/07/27/add-custom-headers.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/07/27/add-custom-headers.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Keep recipients private with automatic Bcc</title>
      <description>Every so often, a message goes out to a group of recipients who should not see each other’s
addresses, a customer announcement, an alumni newsletter, a notification sent to an external
mailing list. It only takes one sender forgetting to use Bcc for every address on that list to be
exposed to everyone else.</description>
      <pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/07/20/move-recipients-to-bcc.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/07/20/move-recipients-to-bcc.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Rewrite subject lines automatically</title>
      <description>Sometimes the content of a message is fine and only the subject line needs to change. MSH Postfix
Milter’s rewrite subject action lets you match part of a subject with a regular expression and
replace it with whatever text you need, as messages pass through the milter.</description>
      <pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/07/13/rewrite-subject-lines.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/07/13/rewrite-subject-lines.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Block risky messages with the right SMTP response</title>
      <description>Blocking a message is not a single action, how you block it changes what happens next on both
ends of the connection. MSH Postfix Milter’s block message action gives you four ways to do it,
each returning a different response to Postfix during the SMTP transaction.</description>
      <pubDate>Mon, 06 Jul 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/07/06/block-messages-smtp-codes.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/07/06/block-messages-smtp-codes.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Teach the milter what internal mail means</title>
      <description>Plenty of mail rules only make sense for one direction of traffic, a disclaimer belongs on
outgoing mail, not on messages two colleagues exchange internally. To make that distinction, MSH
Postfix Milter needs to know which domains actually belong to your organization.</description>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/06/29/domains-internal-mail.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/06/29/domains-internal-mail.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Schedule rules to run only when you need them</title>
      <description>Not every mail policy should apply around the clock. MSH Postfix Milter lets you attach a
scheduler to any rule, so it is only active during the time windows you define, and does nothing
outside of them.</description>
      <pubDate>Mon, 22 Jun 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/06/22/schedule-rules-by-time.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/06/22/schedule-rules-by-time.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Target the right messages with conditions and exceptions</title>
      <description>A rule that applies to every message is rarely what you actually want. MSH Postfix Milter gives
every rule type the same rich set of conditions: message direction, sender, recipient, headers,
subject or body content, attachment name, type, size and count, message size, and even how many
messages a sender or recipient has generated recently.</description>
      <pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/06/15/conditions-and-exceptions.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/06/15/conditions-and-exceptions.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Organize policy rules into groups</title>
      <description>Once you have more than a handful of policy rules, a single flat list becomes hard to reason
about. MSH Postfix Milter lets you organize rules into named groups, each with its own list of
rules and its own logic for what happens next.</description>
      <pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/06/08/organize-rules-into-groups.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/06/08/organize-rules-into-groups.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Personalize every message with user attributes</title>
      <description>A signature or disclaimer template is only as useful as the data behind it. MSH Postfix Milter
resolves per-user attributes, name, title, phone number and other fields, at send time and drops
them into the placeholders inside your templates.</description>
      <pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/06/01/personalize-with-user-attributes.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/06/01/personalize-with-user-attributes.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Build signatures and disclaimers once, reuse everywhere</title>
      <description>Signatures and disclaimers both come from the same place in MSH Postfix Milter: the Templates
panel. Instead of pasting HTML into each rule by hand, you design a template once and reuse it
across as many signature and disclaimer rules as you need.</description>
      <pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/05/25/signature-disclaimer-templates.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/05/25/signature-disclaimer-templates.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
    <item>
      <title>Stop duplicate disclaimers on long reply threads</title>
      <description>A legal disclaimer rule that simply appends text to every outgoing message works fine for a single
email, but on a long back and forth thread the same disclaimer can end up stacked at the bottom
three or four times as quoted history builds up underneath it.</description>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <link>https://www.mshsoftware.com/blog/2026/05/18/stop-duplicate-disclaimers.html</link>
      <guid isPermaLink="true">https://www.mshsoftware.com/blog/2026/05/18/stop-duplicate-disclaimers.html</guid>
      <category>MSH Postfix Milter</category>
    </item>
  </channel>
</rss>
