]> git.immae.eu Git - perso/Immae/Config/Nix.git/blame - modules/private/mail/opensmtpd.nix
Use attrs for secrets instead of lists
[perso/Immae/Config/Nix.git] / modules / private / mail / opensmtpd.nix
CommitLineData
deca5e9b
IB
1{ lib, pkgs, config, name, ... }:
2{
3 config = lib.mkIf config.myServices.mailRelay.enable {
4c4652aa
IB
4 secrets.keys."opensmtpd/creds" = {
5 user = "smtpd";
6 group = "smtpd";
7 permissions = "0400";
8 text = ''
9 eldiron ${name}:${config.hostEnv.ldap.password}
10 '';
11 };
deca5e9b
IB
12 users.users.smtpd.extraGroups = [ "keys" ];
13 services.opensmtpd = {
14 enable = true;
e05c9acc
IB
15 serverConfiguration = let
16 filter-rewrite-from = pkgs.runCommand "filter-rewrite-from.py" {
17 buildInputs = [ pkgs.python3 ];
18 } ''
19 cp ${./filter-rewrite-from.py} $out
20 patchShebangs $out
21 '';
22 in ''
deca5e9b
IB
23 table creds \
24 "${config.secrets.fullPaths."opensmtpd/creds"}"
e05c9acc
IB
25 # FIXME: filtering requires 6.6, uncomment following lines when
26 # upgrading
deca5e9b 27 # filter "fixfrom" \
e05c9acc
IB
28 # proc-exec "${filter-rewrite-from} ${name}@immae.eu"
29 # listen on socket filter "fixfrom"
deca5e9b 30 action "relay-rewrite-from" relay \
619e4f46 31 helo ${config.hostEnv.fqdn} \
deca5e9b
IB
32 host smtp+tls://eldiron@eldiron.immae.eu:587 \
33 auth <creds> \
34 mail-from ${name}@immae.eu
35 action "relay" relay \
619e4f46 36 helo ${config.hostEnv.fqdn} \
deca5e9b
IB
37 host smtp+tls://eldiron@eldiron.immae.eu:587 \
38 auth <creds>
39 match for any !mail-from "@immae.eu" action "relay-rewrite-from"
40 match for any mail-from "@immae.eu" action "relay"
41 '';
42 };
43 environment.systemPackages = [ config.services.opensmtpd.package ];
44 services.mail.sendmailSetuidWrapper = {
45 program = "sendmail";
46 source = "${config.services.opensmtpd.package}/bin/smtpctl";
47 setuid = false;
48 setgid = false;
49 };
50 security.wrappers.mailq = {
51 program = "mailq";
52 source = "${config.services.opensmtpd.package}/bin/smtpctl";
53 setuid = false;
54 setgid = false;
55 };
56 };
57}