diff options
author | Robin Raymond <robin@robinraymond.de> | 2017-11-21 11:18:07 +0100 |
---|---|---|
committer | Robin Raymond <robin@robinraymond.de> | 2017-11-21 11:18:07 +0100 |
commit | d94b8acd78fa367ea04d045ed0f041eeb872b140 (patch) | |
tree | 1feb4abe4796780335b6a24ad289dd1ff0dbba28 /mail-server/postfix.nix | |
parent | a17093b867270662d5bbd4c62837d261f019f37d (diff) |
implement alias list
Diffstat (limited to 'mail-server/postfix.nix')
-rw-r--r-- | mail-server/postfix.nix | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/mail-server/postfix.nix b/mail-server/postfix.nix index a2ec9ef..22d445e 100644 --- a/mail-server/postfix.nix +++ b/mail-server/postfix.nix @@ -23,12 +23,20 @@ let cfg = config.mailserver; # valiases_postfix :: [ String ] - valiases_postfix = map + valiases_postfix = lib.flatten (lib.mapAttrsToList + (name: value: + let to = name; + in map (from: "${from} ${to}") value.aliases) + cfg.loginAccounts); + + # extra_valiases_postfix :: [ String ] + extra_valiases_postfix = map (from: let to = cfg.virtualAliases.${from}; in "${from} ${to}") (builtins.attrNames cfg.virtualAliases); + # accountToIdentity :: User -> String accountToIdentity = account: "${account.name} ${account.name}"; @@ -36,7 +44,7 @@ let vaccounts_identity = map accountToIdentity (lib.attrValues cfg.loginAccounts); # valiases_file :: Path - valiases_file = builtins.toFile "valias" (lib.concatStringsSep "\n" valiases_postfix); + valiases_file = builtins.toFile "valias" (lib.concatStringsSep "\n" extra_valiases_postfix); # vhosts_file :: Path vhosts_file = builtins.toFile "vhosts" (concatStringsSep "\n" cfg.domains); @@ -47,7 +55,8 @@ let # for details on how this file looks. By using the same file as valiases, # every alias is owned (uniquely) by its user. We have to add the users own # address though - vaccounts_file = builtins.toFile "vaccounts" (lib.concatStringsSep "\n" (vaccounts_identity ++ valiases_postfix)); + vaccounts_file = builtins.toFile "vaccounts" (lib.concatStringsSep "\n" + (vaccounts_identity ++ extra_valiases_postfix)); submissionHeaderCleanupRules = pkgs.writeText "submission_header_cleanup_rules" '' # Removes sensitive headers from mails handed in via the submission port. |