]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/mail/opensmtpd.nix
Use attrs for secrets instead of lists
[perso/Immae/Config/Nix.git] / modules / private / mail / opensmtpd.nix
index 7831ac0d587bcf352426d72962b2e33ce74c16c6..e05bba98a3cf458652ef23ebcbd299675d361686 100644 (file)
@@ -1,33 +1,39 @@
 { lib, pkgs, config, name, ... }:
 {
   config = lib.mkIf config.myServices.mailRelay.enable {
-    secrets.keys = [
-      {
-        dest = "opensmtpd/creds";
-        user = "smtpd";
-        group = "smtpd";
-        permissions = "0400";
-        text = ''
-          eldiron    ${name}:${config.myEnv.servers."${name}".ldap.password}
-          '';
-      }
-    ];
+    secrets.keys."opensmtpd/creds" = {
+      user = "smtpd";
+      group = "smtpd";
+      permissions = "0400";
+      text = ''
+        eldiron    ${name}:${config.hostEnv.ldap.password}
+        '';
+    };
     users.users.smtpd.extraGroups = [ "keys" ];
     services.opensmtpd = {
       enable = true;
-      serverConfiguration = ''
+      serverConfiguration = let
+        filter-rewrite-from = pkgs.runCommand "filter-rewrite-from.py" {
+          buildInputs = [ pkgs.python3 ];
+        } ''
+          cp ${./filter-rewrite-from.py} $out
+          patchShebangs $out
+        '';
+      in ''
         table creds \
           "${config.secrets.fullPaths."opensmtpd/creds"}"
-        # FIXME: filtering requires 6.6
+        # FIXME: filtering requires 6.6, uncomment following lines when
+        # upgrading
         # filter "fixfrom" \
-        #   proc-exec "${pkgs.procmail}/bin/formail -i 'From: ${name}@immae.eu'"
+        #   proc-exec "${filter-rewrite-from} ${name}@immae.eu"
+        # listen on socket filter "fixfrom"
         action "relay-rewrite-from" relay \
-          helo ${config.hostEnv.FQDN} \
+          helo ${config.hostEnv.fqdn} \
           host smtp+tls://eldiron@eldiron.immae.eu:587 \
           auth <creds> \
           mail-from ${name}@immae.eu
         action "relay" relay \
-          helo ${config.hostEnv.FQDN} \
+          helo ${config.hostEnv.fqdn} \
           host smtp+tls://eldiron@eldiron.immae.eu:587 \
           auth <creds>
         match for any !mail-from "@immae.eu" action "relay-rewrite-from"