Adding a disclaimer to every message is easy to get wrong: nobody wants a lengthy external confidentiality notice on a one-line internal message between colleagues. What most organisations actually want is a disclaimer on outgoing mail only. Postfix does not add disclaimers at all on its own, and a naive content filter runs on all mail - inbound and internal included.
The key is telling outbound mail apart from the rest. This page shows why the simple filter approach over-applies the disclaimer, and how MSH Postfix Milter targets outgoing mail precisely with a message-direction rule.
Why the manual filter over-applies
A typical alterMIME content filter is attached to the smtp service inmaster.cf, so it processes everything that passes through:
smtp inet n - y - - smtpd
-o content_filter=dfilt:
dfilt unix - n n - - pipe
flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient}
To restrict it to outbound mail, admins resort to maintaining an allow-list of local sender addresses and testing each message against it:
# every local sender that should get the external disclaimer
alice@example.com
bob@example.com
sales@example.com
The trouble with that:
- It is a maintenance treadmill. Every new or departing employee means editing the list.
- Direction is only approximated. Matching on sender address is not the same as truly knowing a message is leaving the organisation.
- Internal mail can still match. A listed sender emailing a colleague gets the external disclaimer anyway.
- Submission ports need separate wiring. Authenticated submission on 587/465 must be filtered too, or outbound mail escapes undisclaimed.
Outbound-only disclaimers with MSH Postfix Milter
MSH Postfix Milter understands message direction directly. You add a message-direction condition to a disclaimer rule and it matches outgoing mail only - no address lists, no per-port wiring, and internal mail stays clean.

Configure it in four steps
- Install the milter and connect it with
smtpd_milters- one hook covers all submission paths. - Write the disclaimer as text or HTML in the Administrator Panel.
- Add a message-direction condition so the rule matches outgoing mail only.
- Test and enable - use the rules tester to confirm internal mail is left untouched.
Frequently asked questions
How do I add a disclaimer only to outgoing mail in Postfix?
You need a filter that can tell inbound from outbound mail. With MSH Postfix Milter you create a disclaimer rule scoped by message direction, so only outgoing messages get the disclaimer and internal or inbound mail is left untouched.
Why does my Postfix disclaimer get added to internal email too?
A basic content filter runs on all mail passing through the smtp service, including internal messages. To limit it to outbound mail you must distinguish direction. MSH Postfix Milter does this with a built-in message-direction condition instead of hand-maintained address lists.
Can I exclude internal recipients from the disclaimer?
Yes. Rules can match on direction and on sender or recipient domains, so messages staying inside your organisation never receive the external disclaimer.
Does outbound mail submitted on port 587 also get the disclaimer?
Yes. Because MSH Postfix Milter runs as a milter on the Postfix daemon, it covers authenticated submission as well, so no outbound mail slips past without the disclaimer.