Where are mail logs (right out of the box)?

No. Virtualmin has nothing to do with it. Virtualmin, in almost every case, works with the system as provided by the vendor.

Your distribution, and the packages they provide, decides the default. You can choose do something other than the default, as well.

Ask your OS vendor. You picked an OS, we respect that decision.

That respect looks like us doing everything we can to work in the way that an expert with that OS and version would expect, nothing should be a surprise. Services start/stop/status with the same commands, logs end up in the same place (though we don’t yet send our own logs from Webmin/Usermin to the journal, we will eventually), we use the same configuration files and locations, we use standard system packages for everything we can, etc. (Though, it happens that all of our supported operating systems now use the journal for most logs. Which is the natural result of systemd and the journal being better than what came before. But, you’re welcome to change back to text logs, if the journal is a problem. Though I think it’s worth learning your way around the journal, as it is better for most cases I can think of. We provide a UI for viewing and querying it.)

You can choose how much data the journal is allowed to consume, which will roughly determine how long it’s kept locally.

For my day job, we ingest the entire journal from all of our 200+ devices into Loki on a central system, which is searchable in Grafana. Any log centralization setup could do the same. journald can also publish to syslog-compatible destinations. The journal is super flexible.

You can also just switch to writing a log, or you can configure journald to also write a log of the postfix unit. There are several ways to do this. Before I made everything use the journal at my day job and before we switched to Loki+Grafana, we had a few systemd units that would just pipe the journal for some units into logs we could ingest into Splunk.

It’s not specific to Virtualmin, any documentation or guides about journald, journalctl, and systemd in this area will be useful. We’re working with the system as it is, as best we can, unless and until you tell Virtualmin to do something else.