Skip to main content
Version: 1.3

Server module

note

Download the server module package by following the Download instructions.

warning

Version 1.2 and later require Java 21. Before updating from an earlier version, make sure Java 21 or newer is installed on the mail server - see the Java installation guide. The services refuse to start on an older Java.

Extract the downloaded package:

tar zxvf msh-pm-milter-<VERSION>.tgz

Stop the server module services:

sudo systemctl stop msh-pm-settings msh-pm-milter

Copy the extracted files to the installation directory:

sudo cp -rf msh-pm-milter /opt

Reload the systemd daemon to pick up any updated service definitions:

sudo systemctl daemon-reload

Start the server module services:

sudo systemctl start msh-pm-milter msh-pm-settings

Verify​

Check the current status of services to verify they're running correctly (press q to exit).

systemctl status msh-pm-settings.service
systemctl status msh-pm-milter.service

Example of running msh-pm-milter service.

● msh-pm-milter.service - MSH Postfix Milter (milter)
Loaded: loaded (/etc/systemd/system/msh-pm-milter.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-10-16 13:37:49 CDT; 1min 20s ago
Invocation: ce2053dc217d4c2b96be25f96ffa2aea
Main PID: 2604 (msh-pm-milter)
Tasks: 14 (limit: 9302)
Memory: 87.2M (peak: 87.5M)
CPU: 1.845s
CGroup: /system.slice/msh-pm-milter.service
├─2604 /bin/bash /opt/msh-pm-milter/bin/msh-pm-milter
└─2642 /usr/bin/java -Xms128M -Xmx1024M -Dfile.encoding=UTF8 -jar /opt/msh-pm-milter/bin/jar/msh-pm-milter.jar -installdir=/op>

Updating to 1.3: Run executable rules​

Since 1.3 the Run executable action runs only programs from the scripts directory, /opt/msh-pm-milter/scripts by default. A policy rule whose executable lies outside it stops running after the update, with the reason in the processing trace and the server log. Before or right after the update, move each such program, or a wrapper script that calls it, into the scripts directory, run lib/fixperms.sh, and put the file name in the rule in place of the old path.

Additional resources​