# Please don't modify this file as your changes might be overwritten with
# the next update.
#
# You can modify 'local.d/multimap.conf' to add and merge
# parameters defined inside this section
#
# You can modify 'override.d/multimap.conf' to strictly override all
# parameters defined inside this section
#
# See https://rspamd.com/doc/faq.html#what-are-the-locald-and-overrided-directories
# for details
#
# Module documentation can be found at  https://rspamd.com/doc/modules/multimap.html

multimap {
  # Freemail Addresses
  freemail_envfrom {
    type = "from";
    filter = "email:domain";
    map = "https://maps.rspamd.com/freemail/free.txt.zst";
    symbol = "FREEMAIL_ENVFROM";
    description = "Envelope From is a Freemail address";
    score = 0.0;
  }

  freemail_envrcpt {
    type = "rcpt";
    filter = "email:domain";
    map = "https://maps.rspamd.com/freemail/free.txt.zst";
    symbol = "FREEMAIL_ENVRCPT";
    description = "Envelope Recipient is a Freemail address";
    score = 0.0;
  }

  freemail_from {
    type = "header";
    header = "from";
    filter = "email:domain";
    map = "https://maps.rspamd.com/freemail/free.txt.zst";
    symbol = "FREEMAIL_FROM";
    description = "From is a Freemail address";
    score = 0.0;
  }

  freemail_to {
    type = "header";
    header = "To";
    filter = "email:domain";
    map = "https://maps.rspamd.com/freemail/free.txt.zst";
    symbol = "FREEMAIL_TO";
    description = "To is a Freemail address";
    score = 0.0;
  }

  freemail_cc {
    type = "header";
    header = "Cc";
    filter = "email:domain";
    map = "https://maps.rspamd.com/freemail/free.txt.zst";
    symbol = "FREEMAIL_CC";
    description = "To is a Freemail address";
    score = 0.0;
  }

  freemail_replyto {
    type = "header";
    header = "Reply-To";
    filter = "email:domain";
    map = "https://maps.rspamd.com/freemail/free.txt.zst";
    symbol = "FREEMAIL_REPLYTO";
    description = "Reply-To is a Freemail address";
    score = 0.0;
  }

  # Disposable Addresses
  disposable_envfrom {
    type = "from";
    filter = "email:domain";
    map = "https://maps.rspamd.com/freemail/disposable.txt.zst";
    symbol = "DISPOSABLE_ENVFROM";
    description = "Envelope From is a Disposable e-mail address";
    score = 0.0;
  }

  disposable_envrcpt {
    type = "rcpt";
    filter = "email:domain";
    map = "https://maps.rspamd.com/freemail/disposable.txt.zst";
    symbol = "DISPOSABLE_ENVRCPT";
    description = "Envelope Recipient is a Disposable e-mail address";
    score = 0.0;
  }

  disposable_from {
    type = "header";
    header = "from";
    filter = "email:domain";
    map = "https://maps.rspamd.com/freemail/disposable.txt.zst";
    symbol = "DISPOSABLE_FROM";
    description = "From a Disposable e-mail address";
    score = 0.0;
  }

  disposable_to {
    type = "header";
    header = "To";
    filter = "email:domain";
    map = "https://maps.rspamd.com/freemail/disposable.txt.zst";
    symbol = "DISPOSABLE_TO";
    description = "To a disposable e-mail address";
    score = 0.0;
  }

  disposable_cc {
    type = "header";
    header = "Cc";
    filter = "email:domain";
    map = "https://maps.rspamd.com/freemail/disposable.txt.zst";
    symbol = "DISPOSABLE_CC";
    description = "To a disposable e-mail address";
    score = 0.0;
  }

  disposable_replyto {
    type = "header";
    header = "Reply-To";
    filter = "email:domain";
    map = "https://maps.rspamd.com/freemail/disposable.txt.zst";
    symbol = "DISPOSABLE_REPLYTO";
    description = "Reply-To a disposable e-mail address";
    score = 0.0;
  }

  .include(try=true,priority=5) "${DBDIR}/dynamic/multimap.conf"
  .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/multimap.conf"
  .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/multimap.conf"
}

/* Example setup
sender_from_whitelist_user {
          type = "from";
          filter = "email:user";
          map = "file:///tmp/from.map";
          symbol = "SENDER_FROM_WHITELIST_USER";
          action = "accept"; # Prefilter mode
}
sender_from_regexp {
          type = "header";
          header = "from";
          filter = 'regexp:/.*@/';
          map = "file:///tmp/from_re.map";
          symbol = "SENDER_FROM_REGEXP";
}
url_map {
          type = "url";
          filter = "tld";
          map = "file:///tmp/url.map";
          symbol = "URL_MAP";
}
url_tld_re {
          type = "url";
          filter = 'tld:regexp:/\.[^.]+$/'; # Extracts the last component of URL
          map = "file:///tmp/url.map";
          symbol = "URL_MAP_RE";
}
*/

