All accounts on a server using the chatmail/relay software expire messages and accounts by default. The default expiry times are given, and can be changed, in the chatmail.ini file:
“I want to run a server for trusted friends and give them non-expiring space, and I am also happy to offer more limited low-maintenance accounts to all comers” is probably a fairly common usecase. In some cases you might want to distinguish the manually-approved accounts by giving them a different domain or subdomain name, though. Anyone adding Keymail functionality to a mailserver package (@s0ph0s is doing this for Mailcow) might reasonably accomodate this two-tier setup.