That may not be possible. I note that these files (on my big Sur system) have large inode numbers:
$ ls -li /System/Library/LaunchDaemons/*postfix*
1152921500312373849 -rw-r--r-- 1 root wheel 578 Jan 1 2020 /System/Library/LaunchDaemons/com.apple.postfix.master.plist
1152921500312373851 -rw-r--r-- 1 root wheel 554 Jan 1 2020 /System/Library/LaunchDaemons/com.apple.postfix.newaliases.plist
This (combined with the fact that they’re in /System/Library
) means that these files belong to the signed system volume. Which means they can’t be edited by anything short of a macOS system updater.
In which case, CommuniGate may need to release an update that allows it to work with (or alongside) Postfix.
But before I conclude there’s nothing you can do, let’s see if maybe we can do something without deleting the Launch Daemon. Looking at the LaunchDaemon file on my system, I see:
$ cat /System/Library/LaunchDaemons/com.apple.postfix.master.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.apple.postfix.master</string>
<key>Program</key>
<string>/usr/libexec/postfix/master</string>
<key>ProgramArguments</key>
<array>
<string>master</string>
<string>-e</string>
<string>60</string>
</array>
<key>QueueDirectories</key>
<array>
<string>/var/spool/postfix/maildrop</string>
</array>
<key>AbandonProcessGroup</key>
<true/>
</dict>
</plist>
A breakdown of the above (type man launchd.plist
from a terminal to see documentation for the contents) is:
-
Label. Identifies the app
-
Program. This is what gets executed:
/usr/libexec/postfix/master
-
ProgramArguments. The parameters passed to the program.
In this case, it is running /usr/libexec/postfix/master -e 60
, telling the master Postfix master process to quit after 60 seconds of idle time. Any child processes (for actually processing mail) will quit on their own when they finish what they are doing.
-
QueueDirectories. This is a directory that, when not empty, will direct launch service to keep the process alive. In this case, it means it will run whenever there is something in
/var/spool/postfix/maildrop
.
-
AbandonProcessGroup. When a job dies,
launchd
normally kills any remaining processes in the same process group. Setting the key to true prevents that (so the child processes won’t be killed when the master terminates).
So, what all this means is:
- Whenever there is something in the
/var/spool/postfix/maildrop
directory, the Postfix master process will start. It will process the contents (probably spawning child processes as necessary) and will quit when done (after 60 seconds).
- I’m not sure if it will auto-launch at bootup. It might.
So, check your /var/spool/postfix/maildrop
directory. If there are any files in there, move them elsewhere or delete them. That will probably stop Postfix from running.
Of course, there is still the question about why it is constantly running. I can only guess that there is some message in that maildrop directory that it can’t process (maybe sent to an Internet address and there is no valid configuration for Internet mail delivery) and can’t bounce back (maybe from an Internet address?) so it just sits there with Postfix repeatedly trying and failing to process it.
And then there is the “newaliases” launch daemon:
$ cat /System/Library/LaunchDaemons/com.apple.postfix.newaliases.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.apple.postfix.newaliases</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/newaliases</string>
</array>
<key>KeepAlive</key>
<dict>
<key>PathState</key>
<dict>
<key>/etc/aliases.db</key>
<false/>
</dict>
</dict>
<key>WatchPaths</key>
<array>
<string>/etc/postfix/aliases</string>
</array>
</dict>
</plist>
This launch daemon will launch itself whenever either:
- The file
/etc/aliases.db
does not exist
- The file
/etc/postfix/aliases
is modified
When one of these conditions is true, it will run /usr/bin/newaliases
, which generates the /etc/aliases.db
database from the contents of /etc/postfix/aliases
.
Unless you are modifying /etc/postfix/aliases
, this shouldn’t run at all, (after the first bootup after system installation, so it can create the initial version of the database).