Skip to main content

System mail

The server generates mail for you, its administrator: the output of root's cron jobs, the mail system's own alarms and MAILER-DAEMON reports, a copy of every abuse report sent to a hosted domain, and the panel's notices. All of it lands in one mailbox on the server, and --admin-email is what gets it to a person.

Your mailbox on the server​

Mail addressed to root, to root@<server hostname>, or to postmaster@ and abuse@ on any of the server's own hostnames is delivered into the server's own maildir, /var/lib/elpan/system/mail/Maildir. That mailbox has no login; the maildir is readable as root, and nothing else opens it.

So the server forwards it. --admin-email names the addresses:

elpanctl server:init <hostname> [email protected]
elpanctl server:edit --admin-email=

The option is repeatable; passed once with an empty value, it clears the list. The forward is a Sieve script the panel writes into the mailbox, one redirect :copy per address: the local copy is always kept, so a destination that bounces or is removed later loses nothing. The script is rewritten on every server sync.

An empty list is accepted

With no address, system mail accumulates unread in the maildir and the panel warns you nowhere. Set at least one at server:init, and check it when the admin users change.

A destination can't have a quoted local part ("john doe"@example.com): it is written into configuration, and the panel refuses it.

What arrives there​

MailSource
root's cron output and anything else addressed to a bare local partThe host.
MAILER-DAEMON reports and the mail system's resource and software alarmsThe outgoing mail system. Its reports leave with a From on the server's own name, so a copy that reaches an outside address passes authentication.
A copy of every abuse@<domain> reportEach hosted domain, see below.
A rule-started Outgoing Mail Quarantine, and each would-be quarantine of a rule in Observe modeThe panel.
An account's request for help signing in (Sign-in Help Requests)The panel.
The digest of a finished mass upgrade (Upgrade Runs)The panel.

The panel's notices are plain text and carry no branding: they land beside cron output and alarms, and read like them.

postmaster@ and abuse@​

The standards need both addresses on every domain. The server answers them without anything to set up, per domain:

AddressDelivered to
postmaster@<hosted domain>The owning account's system mailbox.
abuse@<hosted domain>The owning account's system mailbox, and abuse@<server hostname>, i.e. you.
postmaster@ and abuse@ on the server's own hostnamesYour mailbox above.

Every abuse report therefore reaches both the party who can act on it and the party who answers for the server.

postmaster and abuse are reserved names: no account can create a mailbox, forwarder or any other address with them, so the routing can't be overridden or lost.

The account's system mailbox

Each account has one mailbox of its own, <account>@<server hostname>, for its domains' postmaster@ and abuse@ and its cron output. It has no password; the account holder reads it from their panel, and it keeps mail for 30 days (account docs). It isn't reachable from outside: the server hostname accepts only postmaster@ and abuse@ from the internet and refuses every other address, so nobody can mail or enumerate the accounts.

What is not here​

  • An account's cron output goes to that account's system mailbox, not to yours.
  • A readable root@<server hostname> mailbox in the admin app doesn't exist yet; the forward is the way to read the mail.