{
  config,
  pkgs,
  lib,
  ...
}:

let
  cfg = config.qois.outgoing-server-mail;
in
with lib;
{
  options.qois.outgoing-server-mail = {
    enable = mkEnableOption ''Enable outgoing emails for server.'';
  };

  config = mkIf cfg.enable {

    sops.secrets."msmtp/password" = {
      owner = "root";
      group = config.users.groups.postdrop.name;
      mode = "0440";
    };

    users.groups.postdrop = { };

    programs.msmtp = {
      enable = true;
      defaults = {
        aliases = pkgs.writeText "aliases" ''
          root: sysadmin@qo.is
        '';
        port = 465;
        tls = true;
        tls_starttls = "off";

      };
      accounts.default = {
        auth = true;
        host = "mail.cyon.ch";
        user = "system@qo.is";
        from = "no-reply@qo.is";
        passwordeval = "${pkgs.busybox}/bin/cat ${config.sops.secrets."msmtp/password".path}";
      };
    };
  };
}
