Postfix sends its own notices (classes resource and software by default) to the bare address postmaster. With myorigin = <host>.localhost this becomes postmaster@<host>.localhost, which does not resolve in any map. The notice bounces and, since it uses the null sender, it is silently discarded. Nobody is told when Postfix hits a resource or software problem.
Steps to reproduce
- Install mail 1.8.0, bind it to a user domain (Samba AD or OpenLDAP) and add a mail domain
- Enter the postfix container:
runagent -m mail1 podman exec -ti postfix sh
- Send a message to the bare postmaster address:
printf 'Subject: test\n\ntest\n' | sendmail -f '' postmaster
- Check the journal:
journalctl --since -2min | grep status=
Expected behavior
The message is delivered to the postmaster public mailbox, like mail sent to postmaster@<mail domain>.
Actual behavior
to=<postmaster@mail.example.org.localhost>, orig_to=<postmaster>, ... dsn=5.1.1, status=bounced (... 550 5.1.1 <postmaster@mail.example.org.localhost> User doesn't exist ...)
The wildcard alias postmaster@* -> vmail+postmaster only applies to domains in the domains table. The internal .localhost domain is not listed there.
A possible fix is to map postmaster@<host>.localhost to vmail+postmaster, next to the existing inline vmail@<host>.localhost entry. Enabling bounce and 2bounce in notify_classes, or making it a setting, could also be considered.
Components
- ns8-mail 1.8.0, latest stable release
- Reproduced on a test system with Samba AD and OpenLDAP, same code in current main
See also
- Reported by Thorsten, private message
Postfix sends its own notices (classes
resourceandsoftwareby default) to the bare addresspostmaster. Withmyorigin = <host>.localhostthis becomespostmaster@<host>.localhost, which does not resolve in any map. The notice bounces and, since it uses the null sender, it is silently discarded. Nobody is told when Postfix hits a resource or software problem.Steps to reproduce
runagent -m mail1 podman exec -ti postfix shprintf 'Subject: test\n\ntest\n' | sendmail -f '' postmasterjournalctl --since -2min | grep status=Expected behavior
The message is delivered to the
postmasterpublic mailbox, like mail sent topostmaster@<mail domain>.Actual behavior
The wildcard alias
postmaster@*->vmail+postmasteronly applies to domains in thedomainstable. The internal.localhostdomain is not listed there.A possible fix is to map
postmaster@<host>.localhosttovmail+postmaster, next to the existing inlinevmail@<host>.localhostentry. Enablingbounceand2bounceinnotify_classes, or making it a setting, could also be considered.Components
See also