Rename extraVirtualAliases to aliases and update description
The extra and virtual parts are redundant and Postfix specific and not at all required. Compare forwards for example.
This commit is contained in:
+11
-12
@@ -649,7 +649,7 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
extraVirtualAliases = mkOption {
|
||||
aliases = mkOption {
|
||||
type =
|
||||
let
|
||||
loginAccount = mkOptionType {
|
||||
@@ -660,7 +660,6 @@ in
|
||||
with types;
|
||||
attrsOf (either loginAccount (nonEmptyListOf loginAccount));
|
||||
example = {
|
||||
"info@example.com" = "user1@example.com";
|
||||
"postmaster@example.com" = "user1@example.com";
|
||||
"abuse@example.com" = "user1@example.com";
|
||||
"multi@example.com" = [
|
||||
@@ -669,15 +668,14 @@ in
|
||||
];
|
||||
};
|
||||
description = ''
|
||||
Virtual Aliases. A virtual alias `"info@example.com" = "user1@example.com"` means that
|
||||
all mail to `info@example.com` is forwarded to `user1@example.com`. Note
|
||||
that it is expected that `postmaster@example.com` and `abuse@example.com` is
|
||||
forwarded to some valid email address. (Alternatively you can create login
|
||||
accounts for `postmaster` and (or) `abuse`). Furthermore, it also allows
|
||||
the user `user1@example.com` to send emails as `info@example.com`.
|
||||
It's also possible to create an alias for multiple accounts. In this
|
||||
example all mails for `multi@example.com` will be forwarded to both
|
||||
`user1@example.com` and `user2@example.com`.
|
||||
Aliases are additional mail addresses routed to one or more existing local accounts.
|
||||
|
||||
The target accounts are allowed to use the alias as the sender address.
|
||||
|
||||
:::{note}
|
||||
This feature is limited to local accounts and does not support LDAP or
|
||||
other external accounts.
|
||||
:::
|
||||
'';
|
||||
default = { };
|
||||
};
|
||||
@@ -692,7 +690,7 @@ in
|
||||
the value `{ "user@example.com" = "user@elsewhere.com"; }`
|
||||
means that mails to `user@example.com` are forwarded to
|
||||
`user@elsewhere.com`. The difference with the
|
||||
{option}`mailserver.extraVirtualAliases` option is that `user@elsewhere.com`
|
||||
{option}`mailserver.aliases` option is that `user@elsewhere.com`
|
||||
can't send mail as `user@example.com`. Also, this option
|
||||
allows to forward mails to external addresses.
|
||||
'';
|
||||
@@ -1681,5 +1679,6 @@ in
|
||||
[ "mailserver" "ldap" "postfix" "mailAttribute" ]
|
||||
[ "mailserver" "ldap" "attributes" "mail" ]
|
||||
)
|
||||
(mkRenamedOptionModule [ "mailserver" "extraVirtualAliases" ] [ "mailserver" "aliases" ])
|
||||
];
|
||||
}
|
||||
|
||||
+3
-3
@@ -68,9 +68,9 @@ complicate the setup significantly.
|
||||
- Use of ``homeDirectory``, ``uid``, ``gid`` LDAP attributes (we are
|
||||
committed to a virtual setup with one vmail user/uid/gid and UUID based home
|
||||
directories)
|
||||
- Declarative aliases through :option:`mailserver.extraVirtualAliases`. These
|
||||
are limited to local accounts, because Postfix enforces sender ownership based
|
||||
on login identity and does not consult virtual aliases for authorization.
|
||||
- Declarative aliases through :option:`mailserver.aliases`. These are limited
|
||||
to local accounts, because Postfix enforces sender ownership based on login
|
||||
identity and does not consult virtual aliases for authorization.
|
||||
|
||||
Enabling LDAP support
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -94,7 +94,7 @@ let
|
||||
mergeLookupTables lookupTables;
|
||||
|
||||
# extra_valiases_postfix :: Map String [String]
|
||||
extra_valiases_postfix = attrsToLookupTable cfg.extraVirtualAliases;
|
||||
extra_valiases_postfix = attrsToLookupTable cfg.aliases;
|
||||
|
||||
# forwards :: Map String [String]
|
||||
forwards = attrsToLookupTable cfg.forwards;
|
||||
|
||||
+2
-2
@@ -85,7 +85,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
extraVirtualAliases = {
|
||||
aliases = {
|
||||
"single-alias@example.com" = "user1@example.com";
|
||||
"multi-alias@example.com" = [
|
||||
"user1@example.com"
|
||||
@@ -494,7 +494,7 @@
|
||||
# if this succeeds, it means that user1 received the mail that was intended for chuck.
|
||||
client.fail("fetchmail --nosslcertck -v")
|
||||
|
||||
with subtest("extraVirtualAliases"):
|
||||
with subtest("Test sending from alias address (mailserver.aliases)"):
|
||||
client.execute("rm ~/mail/*")
|
||||
# send email from single-alias to user1
|
||||
client.succeed(
|
||||
|
||||
+1
-1
@@ -127,7 +127,7 @@ in
|
||||
localDnsResolver = false;
|
||||
indexDir = "/var/lib/dovecot/indices";
|
||||
|
||||
extraVirtualAliases = {
|
||||
aliases = {
|
||||
# Steal frank@example.com from LDAP user frank
|
||||
"frank@example.com" = "mallory@example.com";
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user