implement a catchall address for a domain

by specifying a "destination" in an account that is just "@" followed by the
domain, e.g. "@example.org". messages are only delivered to the catchall
address when no regular destination matches (taking the per-domain
catchall-separator and case-sensisitivity into account).

for issue #18
This commit is contained in:
Mechiel Lukkien
2023-03-29 21:11:43 +02:00
parent 51ad345dbb
commit b571dd4b28
16 changed files with 176 additions and 58 deletions

View File

@ -655,7 +655,11 @@ these addresses will be rejected.
func cmdConfigAddressAdd(c *cmd) {
c.params = "address account"
c.help = "Adds an address to an account and reloads the configuration."
c.help = `Adds an address to an account and reloads the configuration.
If address starts with a @ (i.e. a missing localpart), this is a catchall
address for the domain.
`
args := c.Parse()
if len(args) != 2 {
c.Usage()
@ -675,7 +679,7 @@ func cmdConfigAddressRemove(c *cmd) {
c.params = "address"
c.help = `Remove an address and reload the configuration.
Incoming email for this address will be rejected.
Incoming email for this address will be rejected after removing an address.
`
args := c.Parse()
if len(args) != 1 {