1 { lib, pkgs, config, name, ... }:
3 config = lib.mkIf config.myServices.mailRelay.enable {
6 dest = "opensmtpd/creds";
11 eldiron ${name}:${config.hostEnv.ldap.password}
15 users.users.smtpd.extraGroups = [ "keys" ];
16 services.opensmtpd = {
18 serverConfiguration = let
19 filter-rewrite-from = pkgs.runCommand "filter-rewrite-from.py" {
20 buildInputs = [ pkgs.python3 ];
22 cp ${./filter-rewrite-from.py} $out
27 "${config.secrets.fullPaths."opensmtpd/creds"}"
28 # FIXME: filtering requires 6.6, uncomment following lines when
31 # proc-exec "${filter-rewrite-from} ${name}@immae.eu"
32 # listen on socket filter "fixfrom"
33 action "relay-rewrite-from" relay \
34 helo ${config.hostEnv.fqdn} \
35 host smtp+tls://eldiron@eldiron.immae.eu:587 \
37 mail-from ${name}@immae.eu
38 action "relay" relay \
39 helo ${config.hostEnv.fqdn} \
40 host smtp+tls://eldiron@eldiron.immae.eu:587 \
42 match for any !mail-from "@immae.eu" action "relay-rewrite-from"
43 match for any mail-from "@immae.eu" action "relay"
46 environment.systemPackages = [ config.services.opensmtpd.package ];
47 services.mail.sendmailSetuidWrapper = {
49 source = "${config.services.opensmtpd.package}/bin/smtpctl";
53 security.wrappers.mailq = {
55 source = "${config.services.opensmtpd.package}/bin/smtpctl";