PAGES
← all tools
◆ Email Security

Rspamd

4.2.3 open-source

Rspamd is an advanced spam filtering system and email processing framework that evaluates messages using rules, statistical analysis, and custom services.

Summary

Rspamd is an open-source spam filtering system and email processing framework that scores messages using rules such as regular expressions, statistical (Bayes) analysis, and external services like URL blacklists, then hands a verdict back to the mail transfer agent to reject, tag, or modify the message. It runs as a self-hosted service, typically acting as a Milter alongside Postfix or Sendmail, and is aimed at mail administrators and email infrastructure teams rather than end users, offering a Lua API for custom rules and processing hundreds of messages per second. It sits in the mail-filtering space alongside other MTA-integrated antispam systems, providing built-in modules out of the box while leaving room for bespoke plugins. Active since 2008 with 299 contributors, nearly 1,300 commits in the past year, and a release only 23 days ago, it is under continuous, current development.

Rspamd is an advanced spam filtering system and email processing framework that evaluates messages using rules, statistical analysis, and custom services.

How Rspamd helps

Is this incoming message actually spam, and what should happen to it?

scores the message against regex, statistical (Bayes), and external-service rules and hands back a verdict the mail server can act on — reject, tag, or modify — along with any suggested modifications like a spam header

Which sender domains are lying about who they are?

checks DKIM signatures and DMARC alignment against the message, reporting authentication failures the mail server can act on

Why did a particular message get flagged or let through?

breaks the verdict down into the individual rules and their weights that fired on that message, so the score can be traced back to a cause

Is a linked-to destination actually where it claims to lead?

resolves redirect chains before scoring, following intermediate hops rather than judging the outward-facing link alone

Are these two spam runs actually the same campaign reworded?

compares fuzzy hashes and, for HTML mail, reuse of the same template even when the embedded links differ, flagging matches under a phishing-template symbol

Is a scan hanging because of a slow rule or a slow worker?

reports which async events and symbols are still pending when a scan exceeds its time budget, pointing at the stalled component instead of just the timeout

all 70 features, with the evidence for each →

Languages

Not documented

Features

70 capabilities across 7 areas · 1 backed by code, an API document or a real run

Built from Rspamd's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

What Rspamd offers you

  • Command-line interface11
  • Scripting API6
  • Scripting language support5
  • ML-based detection3
  • Plugin system3
  • REST API3
  • Self-hosted deployment3
  • Plugin API support2
  • Web management console2
  • JSON data export1
Spam and Content Detection 5 capabilities Rspamd's core purpose is to classify messages as spam or legitimate mail using a layered set of detection techniques. These range from statistical and neural-network scoring to pattern matching, obfuscation detection, and fuzzy-hash deduplication.
Composite rules engine shipped Combines individual rule scores into composite verdicts using logical expressions, letting operators encode complex spam policies as structured rules. 9 releases · 2 other sources · first seen May 2019

release 9 total

  • Adds per-symbol Lua conditions and explicit dependencies in Composites rules. 4.1.2 · Jul 2026 · source · release history
  • Composites support per-symbol Lua conditions and explicit dependencies 4.1.2 · Jul 2026 · source · release history
  • Adds hot-reloadable dynamic composites map so composite rules update without a full restart. 4.1.0 · Jun 2026 · source · release history
  • Adds per-service <RULE>_CHECK anchor symbol for dependency ordering and eXpurgate engine support in lua_scanners. 4.1.0 · Jun 2026 · source · release history
  • Adds fuzzy_digest, fuzzy_shingles, authenticated, and received_count selectors. 4.1.0 · Jun 2026 · source · release history
  • Adds a bloom filter for fast negative symbol lookups in Composites 3.14.1 · Dec 2025 · source · release history

docs

  • This module is intended to enable the adoption and reading of SpamAssassin rules within Rspamd. Overview ​ SpamAssassin offers a comprehensive set of rules that prove useful in low-volume environments. The purpose of this plugin is to integrate these rules seamlessly into Rspamd. seen Oct 2026 · source

example

  • Preserve per-check RBL symbol scoring after upgrading, when your composite rules depend on seeing one insertion per matched RBL entry. rbl { # ... existing RBL config ... merge_checks = false; } 4.2.3 · Oct 2026 · source
Neural network spam scoring shipped Scores messages using trained neural network models to catch spam that rule-based checks miss. 8 releases · 2 other sources · first seen Jul 2018

Also counts toward: Plugin API support, Plugin system

release 8 total

  • Adds Neural train.frozen control to halt automatic training and a forced-learn minimal-scan fast path. 4.1.2 · Jul 2026 · source · release history
  • Adds static_embed Neural provider with a WordPiece subword tokenizer over a static embedding matrix and per-token vector access. 4.1.2 · Jul 2026 · source · release history
  • Adds pluggable feature-provider and ANN-architecture registries to the Neural module, plus a sequence output mode with SIF word selection for fasttext_embed, multi-head attention pooling in kann, and slice/concat graph transforms in lua_kann. 4.1.1 · Jun 2026 · source · release history
  • Neural module supports external pretrained models with multi-layer funnel architecture, multi-model fasttext embedding with SIF word weighting, and expression-based autolearn for LLM providers. 4.0.0 · Mar 2026 · source · release history
  • Overhauls the neural module into a pluggable provider-based architecture combining symbol features, LLM embeddings (OpenAI, etc.), trained normalization (unit/zscore/none), and Redis-backed embedding caching. 3.13.0 · Sep 2025 · source · release history
  • ROC based threshold estimation for neural network plugin 3.2 · Apr 2022 · source · release history

example

  • Prevent automatic Neural network updates while still allowing manual forced-learn during a model evaluation period. neural { train { frozen = true; } } 4.1.2 · Jul 2026 · source
  • Run a quick validation of the neural network model without full classification. rspamc neural test <model_path> 3.1 · Nov 2021 · source
Multipattern content matching shipped Scans message content simultaneously against many text patterns to flag known bad content efficiently. 7 releases · 1 other source · first seen Jul 2017

release 7 total

  • Maps: glob map patterns are now anchored to match the whole subject; entries relying on substring matching must be updated to use explicit wildcards or they will stop matching. 4.1.2 · Jul 2026 · source · release history
  • Adds an explicit SOM (start-of-match) flag to the Multipattern engine. 4.1.1 · Jun 2026 · source · release history
  • Multimap now uses only distinct text parts for content matching. 3.11.0 · Dec 2024 · source · release history
  • Enable PCRE2 by default 3.2 · Apr 2022 · source · release history
  • Adds glob map support as an alternative to regexp maps for pattern matching 1.7.4 · May 2018 · source · release history
  • Adds symbol option checking capability in Multimap, allowing validation of associated symbols during mapping. 1.6.3 · Jul 2017 · source · release history

docs

  • Rspamd has several ways to add your own checks: multimap rules, composites, regexp rules, selectors, Lua rules and plugins. Use the simplest one that solves the problem. The diagram shows the order in which to consider them, and the rest of this page follows that order. seen Oct 2026 · source
Text statistical analysis shipped Measures statistical properties of message text, such as entropy and byte distribution, to surface unusual or obfuscated content. 3 releases · first seen Jul 2017

Also counts toward: Scripting language support

release

  • Adds opt-in zip-bomb extraction limits (size, count, ratio) to lua_archive and byte-distribution statistics (entropy, byte mean/deviation, serial correlation, Monte-Carlo Pi) to lua_text. 4.1.1 · Jun 2026 · source · release history
  • New byte-distribution statistics methods in lua_text: entropy, byte mean/deviation, serial correlation, and Monte-Carlo Pi. 4.1.1 · Jun 2026 · source · release history
  • Adds text_part:get_stats Lua function for script access to text part statistics 1.6.2 · Jul 2017 · source · release history
CSS and text obfuscation detection shipped Identifies attempts to hide spam text from readers using CSS tricks such as tiny fonts, off-screen positioning, and clipping. 1 release · first seen Jun 2026

release

  • Expands CSS text-hiding detection to cover off-screen positioning, clip, negative text-indent, and tiny fonts. 4.1.1 · Jun 2026 · source · release history
Email Authentication and Policy Enforcement 4 capabilities Rspamd verifies and enforces the standard email authentication stack — DKIM, DMARC, and SPF — and processes abuse reports. These capabilities allow it to reject forgeries, align policies correctly across address rewrites, and ingest complaint feedback.
Spam filter settings and policy control shipped Controls which rules and scoring symbols apply to a given message or sender, supporting allow-listing, explicit-enable gating, and additive policy overrides. 24 releases · 5 other sources · first seen Jul 2017

release 24 total

  • Adds priority setting to force_actions rules that depend on composites, promoting them to postfilters and exposing the rank as a priority:N symbol option.⁠︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄⁠ 4.2.3 · Oct 2026 · source · release history
  • Adds implicit_allow policy option in Settings apply with additive symbols_enabled, plus strict explicit_enable gating. 4.1.2 · Jul 2026 · source · release history
  • Settings gains new apply policy option implicit_allow with additive symbols_enabled, plus strict explicit_enable gating 4.1.2 · Jul 2026 · source · release history
  • Adds layered collect-then-merge flow for settings, with weak dependencies, disabled status in symcache, and force-enable override for settings conflicts. 4.0.1 · Apr 2026 · source · release history
  • Reply-To validity checks added to headers_checks. 4.0.0 · Mar 2026 · source · release history
  • Adds combinator option for selector rules in Multimap 3.14.1 · Dec 2025 · source · release history

docs

  • libev More than 50 built-in modules can be enabled/disabled/configured independently: external_relay = [192.168.1.0/24]; # Check the IP that passed mail to these relays whitelist = [192.0.2.10]; # Skip SPF checks for these sender IPs # /etc/rspamd/local.d/actions.conf # Include another file; $LOCAL_CONFDIR is a… seen Oct 2026 · source
  • override defaults, see the FAQ on the difference between local.d and override.d external_services - integrates external scanners such as oletools, DCC, Pyzor, Razor or ICAP servers (requires configuration) hfilter - checks HELO, hostname, sender, recipients, Message-ID and URLs for common bad patterns - pushes… seen Oct 2026 · source
  • Why scan outbound mail ​ Sending outbound spam can have severe negative consequences on your system's email delivery capabilities. It is crucial to prevent the occurrence of spam and its associated issues. seen Oct 2026 · source

example

  • Filter messages using an SA-style selector rule in multimap to match sender domain with a regex. selector FROM_CORP from:domain =~ /corp\.example$/i 3.13.0 · Sep 2025 · source
  • Configure a map of whitelisted ARC signers. arc { whitelisted_signers_map = "${DBDIR}/map/arc_whitelist"; } 2.5 · Apr 2020 · source
DKIM signing and verification shipped Verifies DKIM signatures on inbound mail and signs outbound messages to authenticate the sending domain. 10 releases · 2 other sources · first seen Apr 2018

release 10 total

  • DKIM: HAVE_ED25519 is now scoped to OpenSSL key parsing only, changing ed25519 verification behavior on OpenSSL builds. 4.1.3 · Jul 2026 · source · release history
  • Adds OpenDKIM-like signing_table and key_table options to dkim_signing module, usable as maps 1.9.2 · Apr 2019 · source · release history
  • Adds support for ed25519 DKIM key generation 1.9.0 · Mar 2019 · source · release history
  • Adds rspamadm mime sign command for signing MIME messages 1.9.0 · Mar 2019 · source · release history
  • Add method to get DKIM results via Lua API 1.8.3 · Dec 2018 · source · release history
  • Adds check_violation feature to DKIM/ARC signing configuration 1.8.1 · Oct 2018 · source · release history

docs

  • # Test DKIM signing. The From: header domain must match the authenticated user. rspamc -u test@example.com <<'EOF' | grep DKIM_SIGNED From: test@example.com To: rcpt@example.net Subject: DKIM test Test message Environment="RSPAMD_VAULT_DKIM_TOKEN=…" # Test signing with a sample message… seen Oct 2026 · source

example

  • Configure DKIM/ARC signing to check for violation results dkim_signing { check_violation = true; } 1.8.1 · Oct 2018 · source
DMARC and SPF evaluation shipped Evaluates SPF and DMARC policies for each message, maintaining correct sender alignment even when addresses have been rewritten. 7 releases · 1 other source · first seen Jul 2017

Also counts toward: Scripting language support

release 7 total

  • In lua_task, the orig address flavour now returns only the wire (transmitted) addresses when a rewrite preserved the originals — code expecting rewritten addresses under orig will receive different values. 4.1.2 · Jul 2026 · source · release history
  • Detects and scores SPF +all (pass-all) records specially, flagging domains that publish permissive SPF policies that allow any sender. 3.9.1 · Jul 2024 · source · release history
  • Adds an external_relay option to SPF. 2.3 · Feb 2020 · source · release history
  • Adds configurable limits for SPF lookups. 2.1 · Oct 2019 · source · release history
  • Allow disabling AAAA checks in SPF configuration via a dedicated setting. 2.1 · Oct 2019 · source · release history
  • Supports SPF macros transformations during evaluation 1.6.2 · Jul 2017 · source · release history

docs

  • 4.1.2 July 21, 2026 Patch Release with a Critical MIME Recursion DoS Fix, Sender-Identity Preservation for DMARC/SPF, Composite Lua Conditions, and the WebUI Tabulator Migration docs update · Jul 2026 · source
Abuse feedback loop (ARF) processing shipped Parses ARF abuse complaint reports and fills in missing detail by recovering headers from the original reported message. 3 releases · first seen Jun 2026

Also counts toward: Scripting API

release

  • Enables sparse ARF report enrichment in lua_feedback_parsers using original message headers. 4.1.3 · Jul 2026 · source · release history
  • Enriches sparse ARF reports in lua_feedback_parsers with headers from the original message. 4.1.3 · Jul 2026 · source · release history
  • Extends Lua API with bulk and regexp symbol lookups on task; phase-specific (connect/read/write) timeouts and an on_error callback for lua_tcp; lua_extras structured loader for custom selectors, maps, and regexps with cross-kind dependency ordering; and lua_feedback_parsers for DSN and ARF reports. 4.1.0 · Jun 2026 · source · release history
Message Parsing and Safe Handling 4 capabilities Before any analysis can run, Rspamd must safely parse and decompose incoming messages. These capabilities handle MIME structures, archives, URLs, and cryptographic primitives while defending against parser-level attacks.
MIME and archive parsing shipped Parses MIME structures and archive formats, with configurable limits to prevent zip-bomb and MIME-recursion denial-of-service attacks. 8 releases · 1 other source · first seen Sep 2017

release 8 total

  • Adds opt-in zip-bomb extraction limits (size, count, ratio) to lua_archive to bound archive expansion. 4.1.1 · Jun 2026 · source · release history
  • rspamadm dmarc_report subcommand for sending DMARC reports 3.0 · Oct 2021 · source · release history
  • Adds task:lookup_words Lua method and flexible URL extraction methods 1.9.0 · Mar 2019 · source · release history
  • Allow to print full mime structure when extracting mime data 1.7.9 · Aug 2018 · source · release history
  • Adds fuzzy-hash extraction in the MIME tool. 1.7.8 · Jul 2018 · source · release history
  • Provide $HOSTNAME variable in UCL and support encrypted configs in UCL. 1.7.6 · Jun 2018 · source · release history

docs

  • Tue, 21 Jul 2026 17:53:35 GMT Rspamd 4.1.2 - Patch Release with a Critical MIME Recursion DoS Fix, Sender-Identity Preservation for DMARC/SPF, Composite Lua Conditions, and the WebUI Tabulator Migration https://docs.rspamd.com/changelog/4.1.2 https://docs.rspamd.com/changelog/4.1.2 Tue, 21 Jul 2026 00:00:00 GMT… docs update · Jul 2026 · source
URL redirection and SSRF protection shipped Follows URL redirects to find final destinations and blocks requests that would reach internal or local network addresses. 4 releases · 2 other sources · first seen Sep 2018

release

  • Adds forbid_local option to lua_http configuration to block requests to local networks. 4.1.3 · Jul 2026 · source · release history
  • Adds forbid_local option to lua_http to block requests to local networks (enabled by default in url_redirector). 4.1.3 · Jul 2026 · source · release history
  • Upgrades url_redirector with chain-aware intermediate-hop caching, coherent browser fingerprint profiles for stealth resolution, glob-based redirector_hosts_map, and a per-URL GET allowlist. 4.1.0 · Jun 2026 · source · release history
  • Adds selectors support in the ratelimit module to apply limits based on dynamic criteria like message metadata 1.8.0 · Sep 2018 · source · release history

example

  • Block lua_http from making outbound requests to internal/local network addresses in a custom redirector or plugin. # In rspamd lua_http call options: local ret, code, body = rspamd_http.request({ url = url, task = task, forbid_local = true, }) 4.1.3 · Jul 2026 · source
  • Configure lua_http to prevent outbound requests to internal networks. forbid_local = true; 4.1.3 · Jul 2026 · source
Cryptographic utilities shipped Exposes hashing, CRC32, and other cryptographic primitives to Lua rules for use in custom detection logic. 5 releases · first seen Jul 2017

Also counts toward: Scripting API

release

  • Exposes a zlib/YARA-compatible crc32 on rspamd_text, rspamd_util, and cryptobox hash objects. 4.1.1 · Jun 2026 · source · release history
  • Exposes a zlib/YARA-compatible CRC32 on rspamd_text, rspamd_util, and cryptobox hash objects. 4.1.1 · Jun 2026 · source · release history
  • Adds support for multiple base32 alphabets in maps and decoding 2.6 · Sep 2020 · source · release history
  • Adds DKIM keypair generation and fast hashes to the Lua cryptobox API. 1.9.3 · May 2019 · source · release history
  • Implements rdns-curve plugin using rspamd cryptobox library 1.6.2 · Jul 2017 · source · release history
HTTP content negotiation shipped Negotiates response format and compression with API clients so scan results are returned in the representation the caller requests. 3 releases · first seen Mar 2026

release

  • Enables content-negotiation in checkv3 — representation and compression now negotiated via Accept/Accept-Encoding headers. 4.1.1 · Jun 2026 · source · release history
  • Enables content-negotiation (representation and compression) in checkv3 via Accept/Accept-Encoding headers. 4.1.1 · Jun 2026 · source · release history
  • HTTP content negotiation framework with zstd compression for the /stat endpoint. 4.0.0 · Mar 2026 · source · release history
Administration, Configuration, and Tooling 4 capabilities Rspamd provides multiple surfaces for operators to configure, inspect, and manage the system without editing raw files. These include a web UI, a CLI, an HTTP controller API, and configuration introspection commands.
WebUI shipped Provides a browser-based interface for monitoring scan results, adjusting settings, and searching operational history. 32 releases · 5 other sources · first seen Apr 2018

Also counts toward: Web management console

release 32 total

  • Adds fuzzy storage health monitoring via fuzzy_check.ping_storage_all and the /plugins/fuzzy/status API endpoint, with per-server liveness marks, down badges, and an on-demand Check button in the WebUI. 4.2.0 · Sep 2026 · source · release history
  • Adds three-state health, per-server details row, load/latency, config drift, Writable badge, and cluster information to the WebUI Status servers table. 4.2.0 · Sep 2026 · source · release history
  • WebUI Status servers table gains three-state health, per-server details rows, load and latency columns, version and config drift indicators, a Writable badge, and an All SERVERS cluster row. 4.2.0 · Sep 2026 · source · release history
  • WebUI Bayes panel gains a learns balance bar and a min_learns status badge. 4.2.0 · Sep 2026 · source · release history
  • WebUI: read-only users can now access the Selectors tab and the Errors history 4.1.4 · Jul 2026 · source · release history
  • Read-only WebUI users can now access the Selectors tab and the Errors history. 4.1.4 · Jul 2026 · source · release history

docs

  • 4.1.3 July 25, 2026 Hardening Release with DKIM/SPF Correctness Fixes, Parser Resource Bounds, Fuzzy Hash Observability, and a jQuery-Free WebUI seen Jul 2026 · source

example

  • Allow read-only users to inspect rules and errors via the WebUI Navigate to the Selectors tab or Errors history in the Rspamd WebUI as a user with read-only permissions. 4.1.4 · Jul 2026 · source
  • Enable dark mode in the Rspamd WebUI — useful for SOC analysts working in low-light environments; auto-detection follows the OS preference. In the WebUI, open Settings and enable Dark Mode (auto-detection follows the OS theme preference). 3.14.0 · Nov 2025 · source
  • Upload an .eml file directly in the WebUI to test selectors against a real message without copy-pasting. In the Rspamd WebUI, go to Test selectors, then click the file upload control to select a local .eml file and evaluate selectors against it. 3.12.0 · Jun 2025 · source
  • Use the new WebUI feature to upload an email file for manual analysis directly from the interface. 1. Open the Rspamd WebUI. 2. Navigate to the 'Scan' tab. 3. Drag and drop an EML/MIME file into the drop area or click to select a file. 3.9.0 · Jul 2024 · source
Rspamadm command-line administration shipped Offers a command-line tool for administrative operations, with support for loading organisation-specific command extensions. 13 releases · 2 other sources · first seen Jul 2017

Also counts toward: Command-line interface, Plugin system

release 13 total

  • Adds /fuzzystat endpoint and rspamadm fuzzystat CLI command to retrieve sampled fuzzy storage statistics (count_scan.stats_sample). 4.2.0 · Sep 2026 · source · release history
  • Adds rspamadm fuzzy_hash subcommand to generate and manage fuzzy hashes from the CLI. 4.1.3 · Jul 2026 · source · release history
  • Enables discovery of Rspamadm command modules from external directories via rspamadm.d or RSPAMADM_COMMAND_PATH. 4.1.2 · Jul 2026 · source · release history
  • rspamadm command modules can be discovered from external directories (rspamadm.d, RSPAMADM_COMMAND_PATH) 4.1.2 · Jul 2026 · source · release history
  • Adds rspamadm control memstat for per-worker memory dumps covering RSS, mempool callsites, Lua heap, and jemalloc stats; also adds dmarc_report --batch-wait and autolearnstats --sort-by/--group options. 4.1.0 · Jun 2026 · source · release history
  • New rspamadm subcommands: autolearnstats, logstats, and mapstats. 4.0.0 · Mar 2026 · source · release history

example

  • Load Rspamadm command modules from a custom directory to deploy organisation-specific admin tooling without modifying core config. RSPAMADM_COMMAND_PATH=/opt/rspamd/custom-commands rspamadm <command> 4.1.2 · Jul 2026 · source
  • Discover and run rspamadm modules installed in a non-standard directory. export RSPAMADM_COMMAND_PATH=/opt/custom/rspamadm_modules && rspamadm --list 4.1.2 · Jul 2026 · source
Controller and automation API shipped Exposes an HTTP API for automation tasks such as scripted scanning and password-protected administrative actions. 9 releases · 4 other sources · first seen Feb 2018

Also counts toward: REST API

release 9 total

  • The rspamadm controller password can now be read from the environment for automation 4.1.2 · Jul 2026 · source · release history
  • Allows the Rspamd controller password to be read from the environment for automation use cases. 4.1.2 · Jul 2026 · source · release history
  • Kubernetes health and readiness endpoints (/healthz, /readyz) in the controller 3.0 · Oct 2021 · source · release history
  • OpenMetrics-compatible metrics endpoint at /openmetrics in the controller 3.0 · Oct 2021 · source · release history
  • Stores SPF record digests for performance optimization 1.9.2 · Apr 2019 · source · release history
  • Adds more verbosity for SPF caching. 1.9.2 · Apr 2019 · source · release history

docs

  • Alternatively, rely on the enable_shutdown_workaround global option , which is enabled by default. ${sg{$acl_m_report}{(?m)^(?!X-Milter-Add: ).*(\\n|\$)}{}}}\ ${sg{$acl_m_report}{(?m)^(?!X-Milter-Del: ).*(\\n|\$)}{}}}\ , which scans a message using Rspamd and appends the scan results to the source message. seen Oct 2026 · source
  • This document provides a comprehensive guide for developing controller WebUI endpoints in Rspamd, covering both the existing C-based endpoints and how to create new Lua-based endpoints. Overview ​ The Rspamd controller is an HTTP daemon that provides a REST API interface for managing and monitoring Rspamd. seen Oct 2026 · source
  • Wed, 29 Jul 2026 09:37:21 GMT Rspamd 4.1.4 - Patch Release Fixing a Controller Authentication Fail-Open, Regexp Engine Resource Bounds, and jemalloc Startup Segfaults https://docs.rspamd.com/changelog/4.1.4 https://docs.rspamd.com/changelog/4.1.4 Wed, 29 Jul 2026 00:00:00 GMT <h2>Rspamd 4.1.4 - Patch Release Fixing a… seen Jul 2026 · source

example

  • Read the controller password from an environment variable for automation. export RSPAMADM_CONTROLLER_PASSWORD=$(cat /run/keys/controller) && rspamadm configdump 4.1.2 · Jul 2026 · source
Configuration introspection shipped Dumps and inspects the active configuration, including internal symbol cache flags, so operators can verify what is actually in effect. 4 releases · 2 other sources · first seen Oct 2019

Also counts toward: Command-line interface

release

  • --symbol-details flag on configdump now shows symcache flags 4.1.2 · Jul 2026 · source · release history
  • Adds symcache flag display to configdump --symbol-details. 4.1.2 · Jul 2026 · source · release history
  • New --non-default option for rspamadm configdump to show only locally overridden configuration. 3.12.0 · Jun 2025 · source · release history
  • Adds lua_maps with static maps and key-value pair support for configuration-driven lookups 2.0 · Oct 2019 · source · release history

example

  • Show only non-default (locally overridden) configuration values to audit your local changes against shipped defaults. rspamadm configdump --non-default 3.12.0 · Jun 2025 · source
  • Inspect the new enhanced structure in configdump output to verify your custom settings. rspamadm configdump 3.2 · Apr 2022 · source
Analytics and Reporting 2 capabilities Rspamd can export scan results and embeddings to external systems for historical analysis and similarity search. These capabilities let operators build dashboards, audit decisions over time, and run approximate-nearest-neighbour lookups against message vectors.
Embedded vector similarity search service verified Runs a local vector embedding and approximate-nearest-neighbour search service for similarity-based message classification. 2 releases · 7 other sources · first seen Oct 2017

Also counts toward: Command-line interface, Self-hosted deployment

release

  • Adds Clickhouse: Store groups data to store composite rule group outcomes in ClickHouse metrics backend 2.0 · Oct 2019 · source · release history
  • Adds Expires header support when using HTTP maps for dynamic configuration updates 1.6.5 · Oct 2017 · source · release history

docs

  • Bundled LuaJIT 2.1 Built from the upstream LuaJIT v2.1 branch instead of the distribution package Optimized memory allocation (x86_64 packages, except EL 10) What does the "maximum symbols cache timeout" warning mean? seen Oct 2026 · source

command line

ClickHouse analytics export shipped Exports scan results and fuzzy match details to ClickHouse so operators can query and analyse filtering decisions historically. 7 releases · first seen Apr 2019

release 7 total

  • Exports fuzzy match details to ClickHouse (schema version 11) and annotates the X-Rspamd-Fuzzy milter header with rule, flag, probability, and timestamp. 4.1.3 · Jul 2026 · source · release history
  • Adds ClickHouse named extra_columns presets (including an outbound preset) and richer Elastic logs covering Reply-To, received IPs, URL metadata, and forcing module. 4.1.0 · Jun 2026 · source · release history
  • Native UUID v7 generation per task with ClickHouse UUID v7 column support for cross-system correlation. 4.0.0 · Mar 2026 · source · release history
  • metadata_exporter HTTP pusher now supports basic authentication for remote metric pushing 3.4 · Nov 2022 · source · release history
  • Adds scan_time and hostname fields to the metadata_exporter output. 3.3 · Oct 2022 · source · release history
  • Adds support for extra columns in ClickHouse. 2.4 · Feb 2020 · source · release history
Other 1 capability Capabilities that did not group under any area above.
Fuzzy hash storage and matching shipped Stores and queries fuzzy hashes to detect near-duplicate malicious content, with structured match results, probability scoring, and export to ClickHouse and milter headers. 25 releases · 8 other sources · first seen Jul 2017

release 25 total

  • Fuzzy storage now shares sender facts (SPF, DKIM, DMARC, PTR state, recipient bucket, TLS) with storages over encrypted rules. 4.1.5 · Aug 2026 · source · release history
  • Adds prob_bias and prob_power parameters to anchor the Fuzzy probability weight curve at the match threshold. 4.1.3 · Jul 2026 · source · release history
  • Adds structured fuzzy match results via a diagnostics API and the new task:get_fuzzy_results() Lua method, with a configurable probability weight curve (prob_bias, prob_power) anchored at the match threshold. 4.1.3 · Jul 2026 · source · release history
  • Adds new per-hash introspection endpoint rspamadm control fuzzyhash <hash> for debugging Fuzzy storage state. 4.1.3 · Jul 2026 · source · release history
  • Adds Lua API task:get_fuzzy_results() and structured match results for Fuzzy checks, enabling access to diagnostic details in custom scripts. 4.1.3 · Jul 2026 · source · release history
  • Annotates the X-Rspamd-Fuzzy header with milter_headers module, including rule, flag, probability and timestamp data. 4.1.3 · Jul 2026 · source · release history

docs

  • 4.1.5 August 14, 2026 Patch Release Gating File and Shared-Memory Message Sources, with Fuzzy Sender Facts and Font-Aware PDF Text Extraction seen Aug 2026 · source
  • Migration to Rspamd 4.1.5 1. Upgrade Self-Hosted Fuzzy Storages Before Scanners Rspamd 4.1.5 scanners attach a new sender-facts extension to fuzzy commands on every rule that shares extensions, i.e. a rule with encryption configured and without no_share = true 856fa42 #6179 ). docs update · Aug 2026 · source
  • Migration to Rspamd 4.1.3 Rspamd 4.1.3 tightens several resource limits that were previously unbounded, corrects a number of limits that were configured but never actually enforced, and changes how fuzzy matches are scored and reported. Most deployments are affected by at least one of the items below. 1. seen Jul 2026 · source

example

  • Pull sampled fuzzy storage statistics — including per-source IP counts — to audit hash-count accuracy after migrating from the old counter-based approach. rspamadm fuzzystat 4.2.0 · Sep 2026 · source
  • Cap per-key source IP tracking in the fuzzy storage to limit memory use on high-traffic deployments. max_ips_per_key = 256; key { id = "<your-key-id>"; max_ips = 64; } 4.2.0 · Sep 2026 · source
  • Retrieve detailed Fuzzy match diagnostics within a Lua rule to inspect probability and flags. local results = task:get_fuzzy_results() for _, res in ipairs(results) do if res.prob > 0.5 then -- Process high-confidence match end end 4.1.3 · Jul 2026 · source
  • Inspect a specific fuzzy hash entry in storage to validate hits or debug false positives. rspamadm control fuzzyhash <hash> 4.1.3 · Jul 2026 · source
  • Retrieve structured fuzzy match results in a Lua rule to act on probability scores or matched rules. local results = task:get_fuzzy_results() for _, r in ipairs(results) do rspamd_logger.infox(task, 'fuzzy match: rule=%s prob=%s', r.rule, r.probability) end 4.1.3 · Jul 2026 · source
Other 50 capabilities
MTA integration shipped Integrates Rspamd with mail transfer agents such as Postfix by running as a separate daemon that receives messages, scores them, and returns a recommended action. 22 releases · 2 other sources · first seen Jun 2017

release 22 total

  • Adds EHLO and 8BITMIME negotiation with HELO fallback to lua_smtp, downgrading 8-bit messages to 7-bit when the server does not advertise 8BITMIME. 4.2.2 · Oct 2026 · source · release history
  • Adds IP-class classification, bad_mxs/bad_ips trust maps, and per-source checks to mx_check. 4.1.0 · Jun 2026 · source · release history
  • Adds Power of Two Choices load-aware upstream selection with per-upstream latency EWMA, slow-start on revive, per-target SRV weight/error-budget expansion, and deferred DNS to survive transient startup failures. 4.1.0 · Jun 2026 · source · release history
  • Reports pending async events and stalled symbols when a scan times out, aiding diagnosis of slow scans. 4.1.0 · Jun 2026 · source · release history
  • Suspicious TLDs are now map-based via conf/maps.d/suspicious_tlds.inc instead of a hardcoded list. 4.0.0 · Mar 2026 · source · release history
  • Adds a Postfix wizard for automated Rspamd integration. 3.14.0 · Nov 2025 · source · release history

docs

  • is a high-performance spam filtering system and email processing framework. It runs as a separate daemon next to your Mail Transfer Agent (MTA): the MTA passes each message to Rspamd, which analyzes it and returns a score and a recommended action. seen Oct 2026 · source
  • This guide takes a new Rspamd installation to a working spam filter for Postfix: checking Redis and the web interface password, test scans, MTA integration and Bayes training. seen Oct 2026 · source
Flexible metadata export formatters shipped Supports multipart, msgpack, and json_with_message formatters for flexible binary and multipart upload of scan results. 6 releases · 4 other sources · first seen Dec 2025

Also counts toward: JSON data export, REST API

release

  • Adds unix_time field to general metadata in metadata_exporter. 4.2.3 · Oct 2026 · source · release history
  • Validates metadata_exporter rules against a schema so that configtest fails on an invalid rule. 4.2.2 · Oct 2026 · source · release history
  • Adds email_parts to metadata_exporter to compose multipart email alerts with plain and HTML parts grouped into multipart/alternative, with automatic RFC 2047 encoding for non-ASCII headers. 4.2.2 · Oct 2026 · source · release history
  • Adds mail_from, mail_to, helo, channel, and stream_key fields plus selector expansion and custom variables to metadata_exporter rules. 4.2.2 · Oct 2026 · source · release history
  • New /checkv3 HTTP endpoint uses multipart/form-data requests and multipart/mixed responses with structured JSON/msgpack metadata, per-part zstd compression, zero-copy writev responses, and proxy support. 4.0.0 · Mar 2026 · source · release history
  • Adds multipart, msgpack, and json_with_message formatters to the Metadata Exporter for flexible binary and multipart upload support. 3.14.2 · Dec 2025 · source · release history

docs

  • Migration to Rspamd 4.2.2 1. metadata_exporter: Invalid Rules Are Now Disabled Rules are now checked against a schema when the configuration loads ( 63743c613 #6292 ). The built-in backends are http send_mail redis_pubsub redis_stream redis_list json_raw_tcp , and their schema is closed. docs update · Oct 2026 · source

example

  • Include unix timestamps in exported message metadata for easier downstream log correlation. metadata_exporter { # ... existing exporter config ... general { unix_time = true; } } 4.2.3 · Oct 2026 · source
  • Compose a multipart alert email with both plain-text and HTML bodies using email_parts in metadata_exporter, with a custom stream_key variable for routing. rules { MY_ALERT { backend = "email"; mail_from = "rspamd@example.com"; mail_to = "security-team@example.com"; stream_key = "spam-alerts"; email_parts = ["text", "html"]; } } 4.2.2 · Oct 2026 · source
  • Use the new crypto_addresses() selector in a metadata_exporter rule to include detected wallet addresses in alert emails sent by your spam-analysis pipeline. selector = "crypto_addresses()" 4.2.2 · Oct 2026 · source
Malicious document and archive inspection shipped Inspects email attachments for malicious content using external scanners, ICAP protocols, and specialized handling for encrypted archives or OLE files. 9 releases · first seen Mar 2019

release 9 total

  • Extracts XLSX and PPTX relationship-level facts as new symbols: OOXML_MACROS, OOXML_OLE_OBJECT, OOXML_REMOTE_TEMPLATE, OOXML_EXTERNAL_DATA. 4.2.0 · Sep 2026 · source · release history
  • PDF module gains font-aware text extraction: decodes simple font text via the font's /Encoding (Annex D base encodings and /Differences overrides) and parses /ToUnicode CMaps to decode composite (Type0) fonts. 4.1.5 · Aug 2026 · source · release history
  • Adds font-aware PDF text extraction: decodes simple font text via the font's /Encoding (Annex D base encodings and /Differences overrides) and parses /ToUnicode CMaps to decode composite (Type0) fonts. 4.1.5 · Aug 2026 · source · release history
  • ASCII85 decode support added for PDF extraction. 4.0.0 · Mar 2026 · source · release history
  • Supports scanning encrypted ZIP archives (both ZipCrypto and AES encryption) via updated Lua bindings using libarchive. 3.13.1 · Sep 2025 · source · release history
  • Rspamd now treats *.zpaq attachments as archives and harmful 3.7.4 · Nov 2023 · source · release history
Mail header and message modification shipped Modifies email content by rewriting headers, appending footers, or rendering configuration templates using external tools. 8 releases · first seen Mar 2019

Also counts toward: Command-line interface

release 8 total

  • Adds util.fold_header_unstructured to the Lua API for folding unstructured headers per RFC 5322. 4.2.2 · Oct 2026 · source · release history
  • Adds include/exclude logic for headers processing. 3.11.0 · Dec 2024 · source · release history
  • Adds new message anonymization capabilities. 3.11.0 · Dec 2024 · source · release history
  • [Feature] milter_headers: support not removing headers 3.9.0 · Jul 2024 · source · release history
  • Adds rspamadm template subcommand to render configuration files using Jinja2 templates 1.9.1 · Apr 2019 · source · release history
  • Enables preprocessing of Rspamd config files with Jinja syntax before parsing 1.9.1 · Apr 2019 · source · release history
Bayesian expiry management shipped Provides automatic expiration of Bayesian learning data through a dedicated configuration module. 6 releases · 2 other sources · first seen Mar 2018

Also counts toward: Command-line interface

release

  • Adds /bayes/classifiers HTTP endpoint to retrieve Bayesian classifier information via the Rspamd HTTP API. 3.12.1 · Jun 2025 · source · release history
  • Add bayes_expiry.conf to provide ability to set custom settings for bayes filter expiry 3.9.0 · Jul 2024 · source · release history
  • suspicious_url composite rule detects suspicious URLs in messages flagged with SUSPICIOUS_HEADERS 3.7.4 · Nov 2023 · source · release history
  • Add junk_threshold to control autolearn acceptance 3.1 · Nov 2021 · source · release history
  • rspamadm bayes_dump subcommand for saving and restoring Bayes tokens 3.0 · Oct 2021 · source · release history
  • Add bayes_expiry module as a standalone config component for automatic expiry of bayesian learner data 1.7.0 · Mar 2018 · source · release history

example

  • Query the Bayesian classifiers configured in Rspamd to inspect their current state — useful for monitoring or automation. curl -s http://localhost:11334/bayes/classifiers 3.12.1 · Jun 2025 · source
  • Configure custom expiry times for bayes filter entries using the new dedicated configuration file. # Create or edit /etc/rspamd/local.d/bayes_expiry.conf # Example: set a 30-day expiry expiry = 2592000; 3.9.0 · Jul 2024 · source
Plugin and event extensibility shipped Allows loading user-defined plugins from specific directories and listening to upstream events via Lua for custom behavior. 6 releases · first seen Mar 2019

Also counts toward: Plugin API support, Plugin system, Scripting API, Scripting language support

release

  • task:has_pre_result() in the Lua API now returns the action name (instead of its type) plus its flags. 4.2.3 · Oct 2026 · source · release history
  • Adds a task registry for safe Lua task reference validation. 3.14.3 · Jan 2026 · source · release history
  • Adds lua_shape validation library as a replacement for tableshape 3.14.1 · Dec 2025 · source · release history
  • Adds lua.local.d folder and other new ways to extend Rspamd configuration. 3.11.0 · Dec 2024 · source · release history
  • Adds support for loading user plugins directly from the plugins.d directory 1.9.2 · Apr 2019 · source · release history
  • Adds upstream watcher event listeners via Lua API 1.9.0 · Mar 2019 · source · release history
Email protocol and data parsing enhancements shipped Extends parsing capabilities to include iCalendar files, flexible word extraction, and custom SMTP handling via Lua. 6 releases · first seen Mar 2019

Also counts toward: Scripting API

release

  • Adds an smtp newline normalization mode to rspamd_text in the Lua API. 4.2.2 · Oct 2026 · source · release history
  • Adds Milter ESMTP argument parsing with a new Lua API. 3.14.0 · Nov 2025 · source · release history
  • Adds support for processing SMIME signed messages containers in addition to standard email bodies 2.7 · Jan 2021 · source · release history
  • Adds Clickhouse: Store groups data to store composite rule group outcomes in ClickHouse metrics backend 2.0 · Oct 2019 · source · release history
  • Enables parsing of .ical (iCalendar) files within the tool 1.9.2 · Apr 2019 · source · release history
  • Adds task:lookup_words Lua method and flexible URL extraction methods 1.9.0 · Mar 2019 · source · release history
LLM-based email classification shipped Integrates large language models to analyze message content for spam or malicious intent, supporting local inference via Ollama and multi-model consensus. 6 releases · first seen Mar 2025

Also counts toward: ML-based detection, Self-hosted deployment

release

  • GPT: The condition callback now returns only a boolean; request content generation has been moved into gpt_check. 4.1.5 · Aug 2026 · source · release history
  • GPT module adds configurable consensus thresholds and a context_augment hook. 4.0.0 · Mar 2026 · source · release history
  • Adds web search context for the LLM plugin with Redis caching. 3.14.0 · Nov 2025 · source · release history
  • Introduces a Redis caching framework for use across modules, with the GPT module as the first consumer. 3.11.1 · Mar 2025 · source · release history
  • Supports LLM model consensus, allowing multiple LLM models to vote on a message classification. 3.11.1 · Mar 2025 · source · release history
  • Adds Ollama support to the GPT plugin, enabling local LLM-based spam analysis without external APIs. 3.11.1 · Mar 2025 · source · release history
External service integration shipped Interfaces with third-party threat intelligence services like Pyzor for spam detection. 6 releases · first seen Oct 2021

release

  • Discovers rspamd.com fuzzy servers via SRV by default in fuzzy_check. 4.1.0 · Jun 2026 · source · release history
  • New Metadefender hash lookup module enables file-hash reputation checks against the Metadefender cloud. 3.13.2 · Oct 2025 · source · release history
  • Adds SenderScore Reputationlist RBL and RPBL return codes to the default RBL configuration. 3.10.0 · Sep 2024 · source · release history
  • Allow to add templates to redis history prefix 3.9.0 · Jul 2024 · source · release history
  • Allows adding templates to the Redis history prefix via configuration 3.8.2 · Feb 2024 · source · release history
  • external_services plugin support for Pyzor 3.0 · Oct 2021 · source · release history
DKIM/RBL configuration refinements shipped Adjusts DKIM alignment weight distribution and migrates RBL URL composition maps to use public suffix lookups. 3 releases · 2 other sources · first seen Sep 2026

release

  • RBL: the dkim_domainonly flag under dkim_match_from was inverted; eSLDs were compared when dkim_domainonly was off. The logic is now corrected, which may change which DKIM-domain RBL matches fire. 4.2.3 · Oct 2026 · source · release history
  • R_DKIM_ALLOW weight changes from -0.2 to -0.1; alignment credit moves to the new R_DKIM_ALIGNED symbol. 4.2.0 · Sep 2026 · source · release history
  • The 10.5k-pattern TLD hyperscan database is removed; multimap RBL URL composition maps now use the new public suffix lookup. 4.2.0 · Sep 2026 · source · release history

docs

  • Migration to Rspamd 4.2.3 1. RBL: Checks Resolving to the Same Query Are Merged When several checks of a rule produce the same name (case-insensitive, ignoring a trailing dot), the module now sends that DNS query only once ( b7a8744 #6303 ). docs update · Oct 2026 · source
  • October 21, 2026 Patch Release with ARC Trust Fixes, Browser-Accurate HTML Parsing, Merged RBL Queries and force_actions Priorities docs update · Oct 2026 · source
Public suffix lookup shipped Resolves public suffixes for URLs and domain matching using a dedicated Lua API, selector transforms, and replacement for legacy TLD tables. 5 releases · first seen Sep 2026

Also counts toward: Scripting API

release

  • RBL URL composition maps and host TLD resolution now go through the public suffix lookup; ! exception rules are honoured and a host that is itself a public suffix resolves to the whole host. 4.2.0 · Sep 2026 · source · release history
  • Adds rspamd_tld_lookup Lua function, url:get_public_suffix() method, and get_public_suffix selector transform to resolve public suffixes with full semantics. 4.2.0 · Sep 2026 · source · release history
  • Maps used with the top filter in multimap must now list full suffixes (e.g. com.au instead of au) — the old TLD table is replaced by the public suffix lookup. 4.2.0 · Sep 2026 · source · release history
  • The 10.5k-pattern TLD hyperscan database is removed from the scanner; free-text URL discovery now runs two passes (static matcher plus dot-anchored suffix labels) via the public suffix list. 4.2.0 · Sep 2026 · source · release history
  • Exposes public suffix list semantics to Lua as rspamd_tld_lookup(), url:get_public_suffix() with match flags, and the get_public_suffix selector transform, supporting wildcards, exceptions, and ICANN/private splits.⁠︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄⁠ 4.2.0 · Sep 2026 · source · release history
Package installation and deployment shipped Installs Rspamd from official apt/yum repositories or a Docker image, with distribution-specific packages including ASAN and experimental variants and build-from-source instructions. 3 releases · 2 other sources · first seen Feb 2020

Also counts toward: Self-hosted deployment

release

docs

  • This page covers installing Rspamd from packages or running the official Docker image, checking that it works, and fixing common problems. The downloads page lists the supported distribution releases, experimental and ASAN packages, and how to build from source. seen Oct 2026 · source
  • # Install prerequisites sudo apt-get update sudo apt-get install -y lsb-release wget gpg # Add the repository key sudo mkdir -p /etc/apt/keyrings wget -O- https://rspamd.com/apt-stable/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/rspamd.gpg > /dev/null echo "deb [signed-by=/etc/apt/keyrings/rspamd.gpg]… seen Oct 2026 · source
Cryptocurrency address scanning shipped Detects cryptocurrency wallet addresses within message content and attachments using a bounded Lua-based scanner with configurable text ingestion. 2 releases · 2 other sources · first seen Oct 2026

release

  • Adds crypto_addresses() selector extractor to expose detected wallet addresses from the new lua_crypto_addresses scanner, which replaces bitcoin.lua.⁠︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄⁠ 4.2.2 · Oct 2026 · source · release history
  • Adds add_from_string to lua_crypto_addresses to feed text recovered from attachments into the bounded wallet-address scanner. 4.2.2 · Oct 2026 · source · release history

docs

  • Detecting crypto wallet addresses - the symbols, selector and scam rules for cryptocurrency wallet addresses docs update · Oct 2026 · source

example

  • Use the new crypto_addresses() selector in a metadata_exporter rule to include detected wallet addresses in alert emails sent by your spam-analysis pipeline. selector = "crypto_addresses()" 4.2.2 · Oct 2026 · source
DMARC reporting automation shipped Generates and sends DMARC aggregate reports via CLI commands. 2 releases · 2 other sources · first seen Oct 2021

Also counts toward: Command-line interface

release

  • New rspamadm dmarc_report --recheck-rua flag re-validates cached DMARC report addresses against exclusion maps and RBLs before sending. 3.14.2 · Dec 2025 · source · release history
  • rspamadm dmarc_report subcommand for sending DMARC reports 3.0 · Oct 2021 · source · release history

example

  • Hold dmarc_report dispatch until a full batch is ready, reducing partial-report noise in high-volume environments. rspamadm dmarc_report --batch-wait 4.1.0 · Jun 2026 · source
  • Re-validate all cached DMARC RUA addresses against your exclusion maps or RBLs before dispatching reports. rspamadm dmarc_report --recheck-rua 3.14.2 · Dec 2025 · source
Multiclass Bayesian classification shipped Enables Bayesian learning with multiple named labels (e.g., spam, ham, phishing) instead of binary classification. 3 releases · 1 other source · first seen Sep 2025

Also counts toward: ML-based detection, REST API, Scripting API, Web management console

release

  • Attachment filename sub-tokens improve Bayes classifier accuracy. 4.0.0 · Mar 2026 · source · release history
  • Bayes classifiers now support arbitrary classes beyond binary spam/ham, with updated WebUI learning UI and new /bayes/classifiers endpoint. 4.0.0 · Mar 2026 · source · release history
  • Adds multiclass Bayesian classification supporting 2–20 named labels (spam, ham, transactional, newsletters, phishing, etc.) with single-Redis-call efficiency, autolearn, and Lua API support via task:get_multiclass_result(). 3.13.0 · Sep 2025 · source · release history

example

  • Review autolearn statistics grouped by a chosen field and sorted by a metric to tune Bayes classifier performance. rspamadm autolearnstats --sort-by ham --group domain 4.1.0 · Jun 2026 · source
Dynamic configuration map support shipped Provides configuration-driven lookups using static maps and key-value pairs within Lua scripts and plugins. 4 releases · first seen Oct 2019

Also counts toward: Scripting language support

release

External antivirus integration shipped Integrates with external antivirus engines, such as Kaspersky, to perform malware detection on messages. 4 releases · first seen Dec 2018

release

  • Allow setting fake EICAR patterns in antivirus module configuration 3.1 · Nov 2021 · source · release history
  • antivirus.conf now supports the avast module for antivirus scanning 2.3 · Feb 2020 · source · release history
  • Enhances antivirus module to specially handle encrypted files within archives 1.9.2 · Apr 2019 · source · release history
  • Add Kaspersky antivirus support as a new integration for malware detection 1.8.3 · Dec 2018 · source · release history
Language identification via FastText shipped Uses the FastText library to detect the language of message content, improving classification accuracy for multilingual mail streams. 3 releases · first seen Aug 2023

Also counts toward: ML-based detection

release

  • ENABLE_FASTTEXT cmake option no longer exists as libfasttext has been replaced with a built-in shim. 4.0.0 · Mar 2026 · source · release history
  • Built-in mmap-based fasttext shim shares model memory across workers via MAP_SHARED, saving ~500 MB–7 GB per host and supporting hot-reload via maps infrastructure. 4.0.0 · Mar 2026 · source · release history
  • Adds fasttext language detector module to Rspamd for improved language identification 3.6 · Aug 2023 · source · release history
Message structure inspection CLI shipped Offers command-line utilities to extract and analyze MIME data, HTML structures, URLs, and tokens from email files. 2 releases · 1 other source · first seen Jul 2018

Also counts toward: Command-line interface

release

  • Allow to choose words format in rspamadm mime subcommand 1.8.3 · Dec 2018 · source · release history
  • Adds rspamadm mime command-line utility for extracting MIME data, words, HTML structure, URLs, and Bayes tokens from email files 1.7.7 · Jul 2018 · source · release history

example

  • Opt out of the new default that includes content URLs (e.g. from PDFs) in task:get_urls() results. # local.d/options.inc include_content_urls = false; 4.0.0 · Mar 2026 · source
S3 backend storage for messages shipped Stores email messages and associated data in Amazon S3 using MessagePack serialization. 3 releases · first seen Oct 2021

release

Dynamic ratelimiting via selectors shipped Applies rate limits based on dynamic criteria such as message digest, attachment data, and filenames using the selectors framework. 3 releases · first seen Sep 2018

release

  • Support per-bucket configurations in ratelimit module 3.1 · Nov 2021 · source · release history
  • Supports new ratelimiting scopes: by digest, by attachments data, and by filenames via the selectors framework 1.8.0 · Sep 2018 · source · release history
  • Adds selectors support in the ratelimit module to apply limits based on dynamic criteria like message metadata 1.8.0 · Sep 2018 · source · release history
Lua pattern generation from globs/strings shipped Allows creating Lua regular expressions directly from glob patterns or plain strings within configuration scripts. 2 releases · 1 other source · first seen Nov 2018

Also counts toward: Scripting language support

release

  • Allows static regexp and glob patterns in Lua maps 1.9.2 · Apr 2019 · source · release history
  • Enable creation of Lua regexps directly from glob patterns or plain strings using specialized functions 1.8.2 · Nov 2018 · source · release history

docs

  • 4.1.4 July 29, 2026 Patch Release Fixing a Controller Authentication Fail-Open, Regexp Engine Resource Bounds, and jemalloc Startup Segfaults seen Jul 2026 · source
Rspamd administration and visualization utilities shipped Provides command-line tools for visualizing configuration dependencies, managing MIME signing, and handling template rendering. 3 releases · first seen Mar 2019

Also counts toward: Command-line interface

release

  • Adds rspamadm template subcommand to render configuration files using Jinja2 templates 1.9.1 · Apr 2019 · source · release history
  • Adds configgraph utility to visualize configuration dependencies 1.9.0 · Mar 2019 · source · release history
  • Adds rspamadm mime sign command for signing MIME messages 1.9.0 · Mar 2019 · source · release history
RBL DNS return code matcher configuration shipped Allows administrators to configure specific matchers for DNS return codes within the RBL subsystem, customizing how blocking is triggered. 2 releases · first seen Oct 2023

release

  • phishtank.rspamd.com is now disabled by default; setups relying on Phishtank lookups will silently lose that check unless re-enabled. 4.2.3 · Oct 2026 · source · release history
  • Introduces a new configuration option for RBL modules to use different matchers for DNS return codes 3.7.2 · Oct 2023 · source · release history
Bounded UCL parsing API shipped Provides Lua APIs for untrusted UCL/JSON/msgpack parsing with configurable limits to prevent resource exhaustion on network inputs. 2 releases · first seen Sep 2026

release

  • Adds ucl.untrusted_parser(), parser:set_limits(), and parser:get_limits() Lua API functions for bounded UCL parsing of untrusted network input. 4.2.0 · Sep 2026 · source · release history
  • Adds ucl.untrusted_parser(), parser:set_limits(), and parser:get_limits() Lua API calls for bounded parsing of untrusted UCL/JSON/msgpack network input (controller and proxy bodies, checkv3 metadata). 4.2.0 · Sep 2026 · source · release history
ClickHouse data-skipping indexes shipped Adds support for data-skipping indexes in ClickHouse schemas to optimize point lookups on exported scan results. 2 releases · first seen Sep 2026

release

  • Adds ClickHouse data-skipping indexes support for point lookups (schema 12). 4.2.0 · Sep 2026 · source · release history
  • Adds ClickHouse data-skipping indexes for point lookups at schema version 12. 4.2.0 · Sep 2026 · source · release history
CSS compound selector evaluation shipped Enables evaluation of CSS compound selectors and combinators within the CSS module for more precise style matching. 2 releases · first seen Sep 2026

release

  • Enables evaluation of compound selectors and combinators (e.g., div.mainbox, h1 + p) in the CSS module. 4.2.0 · Sep 2026 · source · release history
  • Adds CSS compound selector and combinator evaluation, supporting div.mainbox, div p, div > p, h1 + p, and h1 ~ p patterns. 4.2.0 · Sep 2026 · source · release history
Fuzzy storage statistics sampling shipped Exposes sampled statistics for fuzzy storage counts and per-source IP caps via command-line tools and metrics endpoints. 1 release · 1 other source · first seen Sep 2026

Also counts toward: Command-line interface

release

  • Reports sampled fuzzy storage statistics from count scans (count_scan.stats_sample) in /fuzzystat and via rspamadm fuzzystat, with configurable per-source IP caps (max_ips_per_key, per-key max_ips). 4.2.0 · Sep 2026 · source · release history

example

  • Retrieve fuzzy storage statistics via command line. rspamadm fuzzystat 4.2.0 · Sep 2026 · source
Metadata exporter Redis list pusher shipped Allows the metadata exporter to push events to Redis lists as an alternative to its default push methods. 2 releases · first seen Sep 2026

release

  • Adds redis_list pusher option in the metadata_exporter configuration. 4.2.0 · Sep 2026 · source · release history
  • Adds redis_list pusher support to metadata_exporter. 4.2.0 · Sep 2026 · source · release history
Redis ACL authentication support shipped Supports username and password configuration for Redis connections to enable Access Control List (ACL) based authentication. 2 releases · first seen Oct 2023

release

  • Adds upstream pinning for lua_redis requests. 4.2.0 · Sep 2026 · source · release history
  • Adds username and password configuration options in the Redis module for ACL-based authentication 3.7.1 · Oct 2023 · source · release history
SVG attachment inspection shipped Extracts content and detects smuggling indicators in SVG attachments, exposing symbols for scripts, foreign objects, data URIs, and forms. 2 releases · first seen Sep 2026

release

  • Extracts SVG attachment content and smuggling indicators as new symbols: SVG_CONTENT, SVG_SCRIPT, SVG_FOREIGN_OBJECT, SVG_DATA_URI, SVG_FORM. 4.2.0 · Sep 2026 · source · release history
  • Adds SVG_CONTENT, SVG_SCRIPT, SVG_FOREIGN_OBJECT, SVG_DATA_URI, SVG_FORM and related symbols for detecting smuggling in SVG attachments. 4.2.0 · Sep 2026 · source · release history
Advanced URL inspection architecture shipped Implements deep processing for URLs with consultation between C-level filters and Lua logic, along with HTML entity decoding utilities. 2 releases · first seen Dec 2025

release

  • Adds deep processing architecture for URLs with C-to-Lua filter consultation 3.14.1 · Dec 2025 · source · release history
  • Adds rspamd_util.decode_html_entities for HTML entity decoding 3.14.1 · Dec 2025 · source · release history
Obfuscation and URL analysis enhancements shipped Extends detection capabilities to handle unnormalized Unicode in URLs, HTML base tags, CSS opacity, and additional HTML entities. 2 releases · first seen Apr 2018

release

Encrypted map distribution shipped Supports distributing configuration maps securely using encrypted storage mechanisms. 1 release · 1 other source · first seen Sep 2025

release

  • Adds encrypted maps to enable new secure map distribution scenarios. 3.13.1 · Sep 2025 · source · release history

docs

  • Advanced spam filtering system and email processing framework that evaluates messages using regex, statistical analysis, and custom services.
Message anonymization shipped Adds capabilities to anonymize message data within the processing pipeline. 2 releases · first seen Dec 2024

release

  • Enables LLM usage for anonymization of message content before external analysis. 3.11.1 · Mar 2025 · source · release history
  • Adds new message anonymization capabilities. 3.11.0 · Dec 2024 · source · release history
Numeric URL inspection shipped Enables Real-time Blackhole List (RBL) checks and analysis for URLs containing IP addresses rather than domain names. 2 releases · first seen Oct 2023

release

  • Skips extra RBL checks when the Received IP matches the From IP, reducing redundant lookups. 3.11.0 · Dec 2024 · source · release history
  • Enables RBL checks on numeric URLs by adding support for numeric_urls inspection in the RBL subsystem 3.7.1 · Oct 2023 · source · release history
Encrypted identity header handling shipped Manages OpenPGP and Autocrypt headers by supporting their oversigning to ensure integrity in forwarding or rewriting scenarios. 2 releases · first seen Apr 2019

release

Cookie management and encryption shipped Provides utilities for generating, managing, and encrypting cookies for authentication or state management. 2 releases · first seen Nov 2018

Also counts toward: Command-line interface

release

  • Adds cookie support in the replies module. 1.8.2 · Nov 2018 · source · release history
  • Adds the rspamadm cookie utility and functions for generating encrypted cookies. 1.8.2 · Nov 2018 · source · release history
DKIM alignment reporting shipped Provides explicit reporting of DKIM From-alignment status via the R_DKIM_ALIGNED symbol, separating it from general validity scores. 1 release · first seen Sep 2026

release

  • Adds DKIM From-alignment reporting as a dedicated R_DKIM_ALIGNED symbol, decided in the DKIM module. 4.2.0 · Sep 2026 · source · release history
Fuzzy storage health checking shipped Provides CLI capabilities to query the live health and reachability of configured fuzzy storages. 1 other source · first seen Sep 2026

Also counts toward: Command-line interface

example

  • Query the live health of all configured fuzzy storages from the command line to verify reachability before a maintenance window. curl -s http://localhost:11334/plugins/fuzzy/status | python3 -m json.tool 4.2.0 · Sep 2026 · source
HTML injection support shipped Enables decoded HTML payloads generated from Lua to be injected back into the processing pipeline for standard HTML parsing. 1 release · first seen Sep 2026

release

  • Enables HTML parts to be injected from Lua so decoded payloads pass through the regular HTML parser. 4.2.0 · Sep 2026 · source · release history
Office relationship-level fact extraction shipped Detects macro, OLE object, remote template, and external data relationships in OOXML attachments (XLSX/PPTX/DOCX) via dedicated symbols. 1 release · first seen Sep 2026

release

  • Adds OOXML_MACROS, OOXML_OLE_OBJECT, OOXML_REMOTE_TEMPLATE, OOXML_EXTERNAL_DATA symbols for relationship-level fact extraction in XLSX/PPTX/DOCX attachments. 4.2.0 · Sep 2026 · source · release history
Selective authentication header removal shipped Allows selective removal of Authentication-Results headers for specific domains via the Milter Headers module. 1 release · first seen Dec 2025

release

  • New remove_ar_from option in Milter Headers enables selective removal of Authentication-Results headers targeting specific domains. 3.14.2 · Dec 2025 · source · release history
Composite rule statistics tracking shipped Enables tracking and control of composite rule statistics via a dedicated protocol command. 1 release · first seen Dec 2025

release

  • Adds statistics tracking and control protocol command to Composites 3.14.1 · Dec 2025 · source · release history
HEIC image processing support shipped Detects and processes HEIC image file formats within the message inspection pipeline. 1 release · first seen Jun 2025

release

  • Adds detection support for HEIC image files via the magic module. 3.12.0 · Jun 2025 · source · release history
Message sanitization shipped Provides utilities to manipulate email content and structure, including stripping attachments for sanitation purposes. 1 other source · first seen Dec 2024

example

  • Strip attachments from a message in a pipeline — useful for sanitizing inbound mail before archiving or forwarding. rspamadm mime strip <path/to/message.eml> 3.11.0 · Dec 2024 · source
Missing client identity header detection shipped Flags messages that lack standard sending-client headers (X-Mailer and User-Agent) as suspicious or untrusted. 1 release · first seen Nov 2023

release

  • New rule detects messages missing both X-Mailer and User-Agent headers 3.7.4 · Nov 2023 · source · release history
Whitespace-only content detection shipped Identifies and penalizes messages that contain only whitespace or images without any visible text, mitigating a common spam evasion technique. 1 release · first seen Oct 2023

release

  • Adds blank_spam rule to detect emails with only whitespace or images, no text content 3.7.2 · Oct 2023 · source · release history
Bounce spam detection shipped Detects and penalizes spam patterns based on email bounce messages. 1 release · first seen Nov 2022

release

  • New detection: bounce spam rule added to penalize bounce-based spam patterns 3.4 · Nov 2022 · source · release history
Passive OS fingerprinting shipped Detects the operating system of connecting clients via passive TCP fingerprinting during SMTP interaction. 1 release · first seen Oct 2019

release

  • Adds p0f scanner module for OS detection via passive TCP fingerprinting 2.0 · Oct 2019 · source · release history

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for Rspamd, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail Rspamd puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Coverage

Missing something? Tell us

What Rspamd connects to, runs on and detects, read from its release notes and docs. So far: 2 new detections, 1 new supported platform, 1 retired supported platform.

Show

4 changes, tracked since Oct 10, 2026.

  • Oct 222026

    new Cryptocurrency wallet address detection

    With crypto wallet addresses

    the symbols, selector and scam rules for cryptocurrency wallet addresses

    Source ↗

  • Oct 112026

    new Ubuntu Resolute (26.04) packages

    Source ↗

  • Oct 112026

    retired Debian bullseye and Ubuntu focal (20.04) packages discontinued

    Debian bullseye and Ubuntu focal (20.04) no longer get new packages. The last version published for bullseye is 4.1.5, and focal has been removed from the repository.

    Source ↗

  • Oct 102026

    new Crypto wallet address detection

    Covers 12: Bitcoin, Litecoin, Dogecoin, Tron, XRP, Zcash and 6 more

    Rspamd now detects wallet addresses for Bitcoin and its forks, Litecoin, Dogecoin, Tron, XRP, Zcash, Cardano, Cosmos, Stellar, TON, Ethereum and Monero, with one independent symbol per currency. This replaces `bitcoin.lua`.

    4.2.2 Source ↗

How we count

Read from 4 of 89 release notes and docs updates we hold for Rspamd. "First seen" is the earliest note that names something; "last" is the latest. Our history may start partway through Rspamd's life, so an old integration can show a recent first-seen date.

Each change counts once: "added 40 checks" is one line, so the numbers measure how often coverage moves, not how big the catalogue is or how well it detects.

Releases

Show
Coverage in all entries

89 entries

  1. October 20267
  2. September 20264
  3. August 20263
  4. July 202612
  5. June 20263
  6. April 20261
  7. March 20261
  8. January 20261
  9. December 20252
  10. November 20251
  11. October 20251
  12. September 20252
  13. June 20252
  14. March 20251
  15. December 20241
  16. September 20241
  17. July 20242
  18. February 20241
  19. January 20241
  20. December 20231
  21. November 20231
  22. October 20232
  23. August 20231
  24. March 20231
  25. November 20221
  26. October 20221
  27. April 20221
  28. November 20211
  29. October 20211
  30. January 20211
  31. September 20201
  32. April 20201
  33. February 20202
  34. October 20192
  35. May 20191
  36. April 20192
  37. March 20191
  38. December 20181
  39. November 20181
  40. October 20181
  41. September 20181
  42. August 20181
  43. July 20182
  44. June 20181
  45. May 20182
  46. April 20181
  47. March 20183
  48. February 20181
  49. October 20171
  50. September 20171
  51. July 20172
  52. June 20171
    Show
    Coverage in all entries

    89 entries

    Project health

    Issue, contributor and maintainer activity in rspamd/rspamd, 2023-12 – 2026-11, as of 2026-11-03. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 38 −12 vs prior 12 months
    2. Maintainers 2 +1 joined · −1 left, last 12 months
    3. Bus factor 1 committers behind half the commits
    4. Community-filed 99% of issues opened, last 12 months
    5. Median time to close 58 days first maintainer reply 2.5 days
    6. Open backlog 258 of 2,774 issues ever filed
    1. Issues opened / month 21 · 2 communitymaintainers
    2. Open backlog 258
    3. Contributors / month 0
    4. Commits / month 0
    5. Stars 2,529
    Issue themes, last 12 months
    • bugs 62%
    • features 17%
    • other 21%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Ships a vulnerable library

    What its latest release locks, checked against known advisories.

    sentence-transformers 2.7.0 in its neural-embedding-service image (contrib/neural-embedding-service/Dockerfile.gpu)

    critical

    Rspamd 4.2.3 builds its neural-embedding-service image (contrib/neural-embedding-service/Dockerfile.gpu) from contrib/neural-embedding-service/requirements-gpu.txt, which locks sentence-transformers 2.7.0. That version has GHSA-jhr6-gm9c-rqjv.

    Fixed in sentence-transformers 5.6.0. No Rspamd release includes it yet.

    GHSA-jhr6-gm9c-rqjv advisory Checked Nov 3 against Rspamd 4.2.3

    transformers 5.5.0 in its neural-embedding-service image (contrib/neural-embedding-service/Dockerfile.gpu)

    high

    Rspamd 4.2.3 builds its neural-embedding-service image (contrib/neural-embedding-service/Dockerfile.gpu) from contrib/neural-embedding-service/requirements-gpu.txt, which locks transformers 5.5.0. That version has GHSA-x9r9-c232-4q39 and 1 other high or critical flaw.

    No fixed version yet.

    GHSA-x9r9-c232-4q39 advisory Checked Nov 3 against Rspamd 4.2.3

    We check the lockfiles its release builds images from: 2 Python. Go modules, other lockfiles and vendored code aren't checked.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →