anchor.diff:          ";
         };
   
  +      aliasMapType = mkOption {
  +        type = with types; enum [ "hash" "regexp" "pcre" ];
  +        default = "hash";
  +        example = "regexp";
  +        description = "The format the alias map should have. Use regexp if you want to use regular expressions.";
  +      };
  +
  +      config = mkOption {
  +        type = with types; attrsOf (either bool (either str (listOf str)));
  +        default = defaultConf;
  +        description = ''
  +          The main.cf configuration file as key value set.
  +        '';
  +        example = {
  +          mail_owner = "postfix";
  +          smtp_use_tls = true;
  +        };
  +      };
  +
         extraConfig = mkOption {
           type = types.lines;
           default = "";
  
positive.code:         description = "
            Entries for the virtual alias map, cf. man-page virtual(8).
          ";
        };
  
        transport = mkOption {
  
negative.code:     (mkIf haveVirtual {
        services.postfix.mapFiles."virtual" = virtualFile;
      })
      (mkIf cfg.enableHeaderChecks {
        services.postfix.mapFiles."header_checks" = headerChecksFile;
      })
      (mkIf (cfg.dnsBlacklists != []) {
        services.postfix.mapFiles."client_access" = checkClientAccessFile;
      })
      (mkIf (cfg.extraConfig != "") {
        warnings = [ "The services.postfix.extraConfig option was deprecated. Please use services.postfix.config instead." ];
      })
    ]);
  }
  