summaryrefslogtreecommitdiffstats
path: root/mail-server
diff options
context:
space:
mode:
authorGalen Abell <galen@galenabell.com>2019-10-16 21:51:45 +0200
committerAntoine Eiche <lewo@abesis.fr>2020-05-08 20:43:46 +0200
commitd47e4ead88043615c76c275879d38004c91cd264 (patch)
tree0a5a278e32b28fd9f5f38d1df963cc6ea4e1c904 /mail-server
parentb7c49fa26a66a724e4e985851e34cf76bc01c9e1 (diff)
Add send-only accounts
Diffstat (limited to 'mail-server')
-rw-r--r--mail-server/postfix.nix9
1 files changed, 9 insertions, 0 deletions
diff --git a/mail-server/postfix.nix b/mail-server/postfix.nix
index b61f038..00c62c5 100644
--- a/mail-server/postfix.nix
+++ b/mail-server/postfix.nix
@@ -50,6 +50,13 @@ let
# all_valiases_postfix :: [ String ]
all_valiases_postfix = valiases_postfix ++ extra_valiases_postfix;
+ # denied_recipients_postfix :: [ String ]
+ denied_recipients_postfix = (map
+ (acct: "${acct.name} REJECT ${acct.rejectMessage}")
+ (lib.filter (acct: acct.sendOnly) (lib.attrValues cfg.loginAccounts)));
+ denied_recipients_file = builtins.toFile "denied_recipients" (lib.concatStringsSep "\n" denied_recipients_postfix);
+
+
# valiases_file :: Path
valiases_file = builtins.toFile "valias"
(lib.concatStringsSep "\n" (all_valiases_postfix ++
@@ -122,6 +129,7 @@ in
networksStyle = "host";
mapFiles."valias" = valiases_file;
mapFiles."vaccounts" = vaccounts_file;
+ mapFiles."denied_recipients" = denied_recipients_file;
mapFiles."reject_senders" = reject_senders_file;
mapFiles."reject_recipients" = reject_recipients_file;
sslCert = certificatePath;
@@ -160,6 +168,7 @@ in
# quota and spf checking
smtpd_recipient_restrictions =
+ check_recipient_access ${mappedFile "denied_recipients"},
check_recipient_access ${mappedFile "reject_recipients"},
check_policy_service inet:localhost:12340,
check_policy_service unix:private/policy-spf