{ pkgs, config, ... }: 
{
  imports = [
    ./nginx
    ./roundcube
  ];

  mailserver = rec {
    enable = true;
    openFirewall = false;
    domains = [ "${config.secrets.jimDomain}" ];
    fqdn = "mx.${config.secrets.jimDomain}";
    certificateScheme = "acme-nginx";
    localDnsResolver = false;
    redis.port = 1515;

    # Dmarc info
    dmarcReporting = {
      enable = true;
      domain = "${config.secrets.jimDomain}";
      localpart = "noreply";
      organizationName = "Jimbo's Files";
    };
        
    # A list of accounts, passwords generated with nix-shell -p mkpasswd --run 'mkpasswd -sm bcrypt'
    loginAccounts = {
      "noreply@${config.secrets.jimDomain}" = {
        hashedPasswordFile = pkgs.writeText "noreply" config.secrets.noreplyMailHash;
        sendOnly = true;
      };    
      "jimbo@${config.secrets.jimDomain}" = {
        hashedPasswordFile = pkgs.writeText "jimbo" config.secrets.jimboMailHash;
        aliases = [ "james@${config.secrets.jimDomain}" "contact@${config.secrets.jimDomain}" ];
      };
      "lunamoonlight@${config.secrets.jimDomain}" = {
        hashedPasswordFile = pkgs.writeText "luna" config.secrets.lunaMailHash;
      };
      "freecorn1854@${config.secrets.jimDomain}" = {
        hashedPasswordFile = pkgs.writeText "freecorn" config.secrets.freecornMailHash;
      };
      "tinyattack09@${config.secrets.jimDomain}" = {
        hashedPasswordFile = pkgs.writeText "tiny" config.secrets.tinyMailHash;
      };
    };
  };

  # Assign the correct port
  services.redis.servers.rspamd.port = 1515;
}