1"use strict";(self.webpackChunkrspamd_docs=self.webpackChunkrspamd_docs||[]).push([[1567],{55226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"About Rspamd","href":"/","docId":"index","unlisted":false},{"type":"category","label":"Getting Started","items":[{"type":"link","label":"Understanding Rspamd","href":"/getting-started/understanding-rspamd","docId":"getting-started/understanding-rspamd","unlisted":false},{"type":"link","label":"Installation Guide","href":"/getting-started/installation","docId":"getting-started/installation","unlisted":false},{"type":"link","label":"First Setup","href":"/getting-started/first-setup","docId":"getting-started/first-setup","unlisted":false},{"type":"link","label":"Configuration Fundamentals","href":"/guides/configuration/fundamentals","docId":"guides/configuration/fundamentals","unlisted":false},{"type":"link","label":"Tool Selection Guide","href":"/guides/configuration/tool-selection","docId":"guides/configuration/tool-selection","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/getting-started/"},{"type":"category","label":"How-To Guides","items":[{"type":"link","label":"Upgrading","href":"/tutorials/migration","docId":"tutorials/migration","unlisted":false},{"type":"link","label":"Migrating from SpamAssassin","href":"/tutorials/migrate_sa","docId":"tutorials/migrate_sa","unlisted":false},{"type":"link","label":"Scanning outbound mail","href":"/tutorials/scanning_outbound","docId":"tutorials/scanning_outbound","unlisted":false},{"type":"link","label":"Usage of fuzzy hashes","href":"/tutorials/fuzzy_storage","docId":"tutorials/fuzzy_storage","unlisted":false},{"type":"link","label":"Multi-instance Redis replication","href":"/tutorials/redis_replication","docId":"tutorials/redis_replication","unlisted":false},{"type":"link","label":"Setup stunnel to protect Redis","href":"/tutorials/stunnel_setup","docId":"tutorials/stunnel_setup","unlisted":false},{"type":"link","label":"MTA integration","href":"/tutorials/integration","docId":"tutorials/integration","unlisted":false},{"type":"link","label":"Getting feedback from users with IMAPSieve","href":"/tutorials/feedback_from_users_with_IMAPSieve","docId":"tutorials/feedback_from_users_with_IMAPSieve","unlisted":false},{"type":"link","label":"Contributing to Rspamd Documentation","href":"/tutorials/site_contributing","docId":"tutorials/site_contributing","unlisted":false},{"type":"category","label":"Module Guides","items":[{"type":"link","label":"Multimap Module Guide","href":"/tutorials/multimap_guide","docId":"tutorials/multimap_guide","unlisted":false},{"type":"link","label":"Settings Module Guide","href":"/tutorials/settings_guide","docId":"tutorials/settings_guide","unlisted":false},{"type":"link","label":"DKIM Signing Guide","href":"/tutorials/dkim_signing_guide","docId":"tutorials/dkim_signing_guide","unlisted":false},{"type":"link","label":"ClickHouse Analytics Platform","href":"/tutorials/clickhouse_analytics","docId":"tutorials/clickhouse_analytics","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"link","label":"Frequently Asked Questions","href":"/faq","docId":"faq","unlisted":false},{"type":"link","label":"Rspamd Support","href":"/support","docId":"support","unlisted":false},{"type":"link","label":"Downloads","href":"/downloads","docId":"downloads","unlisted":false},{"type":"category","label":"Configuration","items":[{"type":"link","label":"User settings","href":"/configuration/settings","docId":"configuration/settings","unlisted":false},{"type":"link","label":"Actions and scores","href":"/configuration/metrics","docId":"configuration/metrics","unlisted":false},{"type":"link","label":"Logging settings","href":"/configuration/logging","docId":"configuration/logging","unlisted":false},{"type":"link","label":"Common options","href":"/configuration/options","docId":"configuration/options","unlisted":false},{"type":"link","label":"Composite symbols","href":"/configuration/composites","docId":"configuration/composites","unlisted":false},{"type":"link","label":"Rspamd maps","href":"/configuration/maps","docId":"configuration/maps","unlisted":false},{"type":"link","label":"Selectors","href":"/configuration/selectors","docId":"configuration/selectors","unlisted":false},{"type":"link","label":"Statistics settings","href":"/configuration/statistic","docId":"configuration/statistic","unlisted":false},{"type":"link","label":"Redis configuration","href":"/configuration/redis","docId":"configuration/redis","unlisted":false},{"type":"link","label":"Upstreams configuration","href":"/configuration/upstream","docId":"configuration/upstream","unlisted":false},{"type":"link","label":"Universal configuration language (UCL)","href":"/configuration/ucl","docId":"configuration/ucl","unlisted":false},{"type":"link","label":"Configuration templates","href":"/configuration/templates","docId":"configuration/templates","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/configuration/"},{"type":"category","label":"Workers","items":[{"type":"link","label":"Normal worker (scanner)","href":"/workers/normal","docId":"workers/normal","unlisted":false},{"type":"link","label":"Controller worker","href":"/workers/controller","docId":"workers/controller","unlisted":false},{"type":"link","label":"Proxy worker","href":"/workers/rspamd_proxy","docId":"workers/rspamd_proxy","unlisted":false},{"type":"link","label":"Fuzzy storage worker","href":"/workers/fuzzy_storage","docId":"workers/fuzzy_storage","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/workers/"},{"type":"category","label":"Modules","items":[{"type":"link","label":"Antivirus module","href":"/modules/antivirus","docId":"modules/antivirus","unlisted":false},{"type":"link","label":"ARC module","href":"/modules/arc","docId":"modules/arc","unlisted":false},{"type":"link","label":"ASN module","href":"/modules/asn","docId":"modules/asn","unlisted":false},{"type":"link","label":"Bayes expiry module","href":"/modules/bayes_expiry","docId":"modules/bayes_expiry","unlisted":false},{"type":"link","label":"Chartable module","href":"/modules/chartable","docId":"modules/chartable","unlisted":false},{"type":"link","label":"Clickhouse module","href":"/modules/clickhouse","docId":"modules/clickhouse","unlisted":false},{"type":"link","label":"DCC module","href":"/modules/dcc","docId":"modules/dcc","unlisted":false},{"type":"link","label":"DKIM module","href":"/modules/dkim","docId":"modules/dkim","unlisted":false},{"type":"link","label":"DKIM signing module","href":"/modules/dkim_signing","docId":"modules/dkim_signing","unlisted":false},{"type":"link","label":"DMARC module","href":"/modules/dmarc","docId":"modules/dmarc","unlisted":false},{"type":"link","label":"Elasticsearch module","href":"/modules/elastic","docId":"modules/elastic","unlisted":false},{"type":"link","label":"Emails module","href":"/modules/emails","docId":"modules/emails","unlisted":false},{"type":"link","label":"External Relay module","href":"/modules/external_relay","docId":"modules/external_relay","unlisted":false},{"type":"link","label":"External Services module","href":"/modules/external_services","docId":"modules/external_services","unlisted":false},{"type":"link","label":"Force Actions module","href":"/modules/force_actions","docId":"modules/force_actions","unlisted":false},{"type":"link","label":"Fuzzy check module","href":"/modules/fuzzy_check","docId":"modules/fuzzy_check","unlisted":false},{"type":"link","label":"GPT Plugin","href":"/modules/gpt","docId":"modules/gpt","unlisted":false},{"type":"link","label":"Greylisting module","href":"/modules/greylisting","docId":"modules/greylisting","unlisted":false},{"type":"link","label":"Hfilter module","href":"/modules/hfilter","docId":"modules/hfilter","unlisted":false},{"type":"link","label":"Redis history module","href":"/modules/history_redis","docId":"modules/history_redis","unlisted":false},{"type":"link","label":"IP Score module","href":"/modules/ip_score","docId":"modules/ip_score","unlisted":false},{"type":"link","label":"Known senders module","href":"/modules/known_senders","docId":"modules/known_senders","unlisted":false},{"type":"link","label":"Mailing lists module","href":"/modules/maillist","docId":"modules/maillist","unlisted":false},{"type":"link","label":"Metadata exporter","href":"/modules/metadata_exporter","docId":"modules/metadata_exporter","unlisted":false},{"type":"link","label":"Metric exporter","href":"/modules/metric_exporter","docId":"modules/metric_exporter","unlisted":false},{"type":"link","label":"MID module","href":"/modules/mid","docId":"modules/mid","unlisted":false},{"type":"link","label":"Milter headers module","href":"/modules/milter_headers","docId":"modules/milter_headers","unlisted":false},{"type":"link","label":"Mime types modules","href":"/modules/mime_types","docId":"modules/mime_types","unlisted":false},{"type":"link","label":"Multimap module","href":"/modules/multimap","docId":"modules/multimap","unlisted":false},{"type":"link","label":"MX Check module","href":"/modules/mx_check","docId":"modules/mx_check","unlisted":false},{"type":"link","label":"Neural network module","href":"/modules/neural","docId":"modules/neural","unlisted":false},{"type":"link","label":"Once received module","href":"/modules/once_received","docId":"modules/once_received","unlisted":false},{"type":"link","label":"Phishing module","href":"/modules/phishing","docId":"modules/phishing","unlisted":false},{"type":"link","label":"Ratelimit module","href":"/modules/ratelimit","docId":"modules/ratelimit","unlisted":false},{"type":"link","label":"RBL module","href":"/modules/rbl","docId":"modules/rbl","unlisted":false},{"type":"link","label":"Regexp module","href":"/modules/regexp","docId":"modules/regexp","unlisted":false},{"type":"link","label":"Replies module","href":"/modules/replies","docId":"modules/replies","unlisted":false},{"type":"link","label":"Reputation module","href":"/modules/reputation","docId":"modules/reputation","unlisted":false},{"type":"link","label":"Rspamd update module","href":"/modules/rspamd_update","docId":"modules/rspamd_update","unlisted":false},{"type":"link","label":"SpamAssassin rules module","href":"/modules/spamassassin","docId":"modules/spamassassin","unlisted":false},{"type":"link","label":"Spamtrap module","href":"/modules/spamtrap","docId":"modules/spamtrap","unlisted":false},{"type":"link","label":"SPF module","href":"/modules/spf","docId":"modules/spf","unlisted":false},{"type":"link","label":"SURBL module","href":"/modules/surbl","docId":"modules/surbl","unlisted":false},{"type":"link","label":"Trie module","href":"/modules/trie","docId":"modules/trie","unlisted":false},{"type":"link","label":"URL redirector module","href":"/modules/url_redirector","docId":"modules/url_redirector","unlisted":false},{"type":"link","label":"Whitelist module","href":"/modules/whitelist","docId":"modules/whitelist","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/modules/"},{"type":"category","label":"Lua API","items":[{"type":"link","label":"Lua API documentation","href":"/lua/","docId":"lua/index","unlisted":false},{"type":"link","label":"Module lua_clickhouse","href":"/lua/lua_clickhouse","docId":"lua/lua_clickhouse","unlisted":false},{"type":"link","label":"Module lua_maps","href":"/lua/lua_maps","docId":"lua/lua_maps","unlisted":false},{"type":"link","label":"Module lua_mime","href":"/lua/lua_mime","docId":"lua/lua_mime","unlisted":false},{"type":"link","label":"Module lua_redis","href":"/lua/lua_redis","docId":"lua/lua_redis","unlisted":false},{"type":"link","label":"Module lua_selectors","href":"/lua/lua_selectors","docId":"lua/lua_selectors","unlisted":false},{"type":"link","label":"Module lua_util","href":"/lua/lua_util","docId":"lua/lua_util","unlisted":false},{"type":"link","label":"Module rspamd_cdb","href":"/lua/rspamd_cdb","docId":"lua/rspamd_cdb","unlisted":false},{"type":"link","label":"Module rspamd_config","href":"/lua/rspamd_config","docId":"lua/rspamd_config","unlisted":false},{"type":"link","label":"Module rspamd_cryptobox","href":"/lua/rspamd_cryptobox","docId":"lua/rspamd_cryptobox","unlisted":false},{"type":"link","label":"Module rspamd_expression","href":"/lua/rspamd_expression","docId":"lua/rspamd_expression","unlisted":false},{"type":"link","label":"Module rspamd_html","href":"/lua/rspamd_html","docId":"lua/rspamd_html","unlisted":false},{"type":"link","label":"Module rspamd_http","href":"/lua/rspamd_http","docId":"lua/rspamd_http","unlisted":false},{"type":"link","label":"Module rspamd_ip","href":"/lua/rspamd_ip","docId":"lua/rspamd_ip","unlisted":false},{"type":"link","label":"Module rspamd_logger","href":"/lua/rspamd_logger","docId":"lua/rspamd_logger","unlisted":false},{"type":"link","label":"Module rspamd_map","href":"/lua/rspamd_map","docId":"lua/rspamd_map","unlisted":false},{"type":"link","label":"Module rspamd_mempool","href":"/lua/rspamd_mempool","docId":"lua/rspamd_mempool","unlisted":false},{"type":"link","label":"Module rspamd_mimepart","href":"/lua/rspamd_mimepart","docId":"lua/rspamd_mimepart","unlisted":false},{"type":"link","label":"Module rspamd_parsers","href":"/lua/rspamd_parsers","docId":"lua/rspamd_parsers","unlisted":false},{"type":"link","label":"Module rspamd_redis","href":"/lua/rspamd_redis","docId":"lua/rspamd_redis","unlisted":false},{"type":"link","label":"Module rspamd_regexp","href":"/lua/rspamd_regexp","docId":"lua/rspamd_regexp","unlisted":false},{"type":"link","label":"Module rspamd_resolver","href":"/lua/rspamd_resolver","docId":"lua/rspamd_resolver","unlisted":false},{"type":"link","label":"Module rspamd_sqlite3","href":"/lua/rspamd_sqlite3","docId":"lua/rspamd_sqlite3","unlisted":false},{"type":"link","label":"Module rspamd_task","href":"/lua/rspamd_task","docId":"lua/rspamd_task","unlisted":false},{"type":"link","label":"Module rspamd_tcp","href":"/lua/rspamd_tcp","docId":"lua/rspamd_tcp","unlisted":false},{"type":"link","label":"Module rspamd_text","href":"/lua/rspamd_text","docId":"lua/rspamd_text","unlisted":false},{"type":"link","label":"Module rspamd_trie","href":"/lua/rspamd_trie","docId":"lua/rspamd_trie","unlisted":false},{"type":"link","label":"Module rspamd_udp","href":"/lua/rspamd_udp","docId":"lua/rspamd_udp","unlisted":false},{"type":"link","label":"Module rspamd_upstream","href":"/lua/rspamd_upstream","docId":"lua/rspamd_upstream","unlisted":false},{"type":"link","label":"Module rspamd_url","href":"/lua/rspamd_url","docId":"lua/rspamd_url","unlisted":false},{"type":"link","label":"Module rspamd_util","href":"/lua/rspamd_util","docId":"lua/rspamd_util","unlisted":false},{"type":"link","label":"Module ucl","href":"/lua/ucl","docId":"lua/ucl","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/lua/"},{"type":"category","label":"Developers","items":[{"type":"link","label":"Rspamd Architecture","href":"/developers/architecture","docId":"developers/architecture","unlisted":false},{"type":"link","label":"Rspamd protocol","href":"/developers/protocol","docId":"developers/protocol","unlisted":false},{"type":"link","label":"HTTPCrypt Encryption Protocol","href":"/developers/encryption","docId":"developers/encryption","unlisted":false},{"type":"link","label":"Coroutines and async calls","href":"/developers/sync_async","docId":"developers/sync_async","unlisted":false},{"type":"link","label":"Rule Writing Workshop","href":"/developers/writing_rules","docId":"developers/writing_rules","unlisted":false},{"type":"link","label":"Writing tests for Rspamd","href":"/developers/writing_tests","docId":"developers/writing_tests","unlisted":false},{"type":"link","label":"Controller WebUI Endpoints Development Guide","href":"/developers/controller_endpoints","docId":"developers/controller_endpoints","unlisted":false},{"type":"link","label":"Lua rules examples","href":"/developers/examples","docId":"developers/examples","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/developers/architecture"},{"type":"category","label":"Administration Tools","items":[{"type":"link","label":"Email Analysis & Debugging","href":"/administration/rspamadm/email-analysis","docId":
1"administration/rspamadm/email-analysis","unlisted":false},{"type":"link","label":"Email Manipulation","href":"/administration/rspamadm/email-manipulation","docId":"administration/rspamadm/email-manipulation","unlisted":false},{"type":"link","label":"DNS & SPF Management","href":"/administration/rspamadm/dns-tools","docId":"administration/rspamadm/dns-tools","unlisted":false},{"type":"link","label":"DKIM Key Management","href":"/administration/rspamadm/dkim-management","docId":"administration/rspamadm/dkim-management","unlisted":false},{"type":"link","label":"Cryptography & Security","href":"/administration/rspamadm/cryptography","docId":"administration/rspamadm/cryptography","unlisted":false},{"type":"link","label":"Statistics & Machine Learning","href":"/administration/rspamadm/statistics-ml","docId":"administration/rspamadm/statistics-ml","unlisted":false},{"type":"link","label":"Log Analysis","href":"/administration/rspamadm/log-analysis","docId":"administration/rspamadm/log-analysis","unlisted":false},{"type":"link","label":"Operations & Monitoring","href":"/administration/rspamadm/operations","docId":"administration/rspamadm/operations","unlisted":false},{"type":"link","label":"Configuration Management","href":"/administration/rspamadm/configuration","docId":"administration/rspamadm/configuration","unlisted":false},{"type":"link","label":"Development & Testing","href":"/administration/rspamadm/development","docId":"administration/rspamadm/development","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/administration/rspamadm/"},{"type":"category","label":"Other","items":[{"type":"link","label":"GTUBE-like test patterns","href":"/other/gtube_patterns","docId":"other/gtube_patterns","unlisted":false},{"type":"link","label":"Services acceptable use policy","href":"/other/usage_policy","docId":"other/usage_policy","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Blog","href":"/blog"}]},"docs":{"about/comparison":{"id":"about/comparison","title":"Comparison","description":"This comparison helps you understand the key differences between Rspamd and SpamAssassin, the two most popular open-source email filtering solutions. Both are mature, well-maintained projects with active communities, but they take fundamentally different approaches to spam filtering."},"about/features":{"id":"about/features","title":"Features","description":"Rspamd is a high-performance spam filtering system that combines traditional spam detection techniques with modern machine learning approaches. Each message is analyzed by multiple independent checks (called symbols) that contribute to a cumulative spam score. Based on this score and configurable thresholds, Rspamd recommends an action (reject, greylist, add header, or accept) to your mail server."},"about/index":{"id":"about/index","title":"Overview","description":"Introduction"},"about/performance":{"id":"about/performance","title":"Performance","description":"Mail filtering nowadays"},"administration/rspamadm/configuration":{"id":"administration/rspamadm/configuration","title":"Configuration Management","description":"These commands help validate, inspect, and manipulate Rspamd configuration files.","sidebar":"docs"},"administration/rspamadm/cryptography":{"id":"administration/rspamadm/cryptography","title":"Cryptography & Security","description":"These commands provide cryptographic operations including keypair generation, encryption, decryption, and password management.","sidebar":"docs"},"administration/rspamadm/development":{"id":"administration/rspamadm/development","title":"Development & Testing","description":"These commands support development, testing, and advanced debugging of Rspamd.","sidebar":"docs"},"administration/rspamadm/dkim-management":{"id":"administration/rspamadm/dkim-management","title":"DKIM Key Management","description":"These commands provide comprehensive DKIM key generation, storage, and rotation capabilities, including integration with Hashicorp Vault for enterprise key management.","sidebar":"docs"},"administration/rspamadm/dns-tools":{"id":"administration/rspamadm/dns-tools","title":"DNS & SPF Management","description":"The
1se commands provide DNS querying capabilities and powerful SPF record management, including automatic flattening to avoid the 10-lookup limit.","sidebar":"docs"},"administration/rspamadm/email-analysis":{"id":"administration/rspamadm/email-analysis","title":"Email Analysis & Debugging","description":"These commands help you inspect and analyze email messages to understand how Rspamd processes them.","sidebar":"docs"},"administration/rspamadm/email-manipulation":{"id":"administration/rspamadm/email-manipulation","title":"Email Manipulation","description":"These commands allow you to modify, sanitize, and sign email messages.","sidebar":"docs"},"administration/rspamadm/index":{"id":"administration/rspamadm/index","title":"Rspamadm Administration Utility","description":"The rspamadm command is a powerful administration utility that provides a comprehensive set of tools for managing, debugging, and operating Rspamd installations. It consolidates various administrative functions into a single command-line interface.","sidebar":"docs"},"administration/rspamadm/log-analysis":{"id":"administration/rspamadm/log-analysis","title":"Log Analysis","description":"These commands parse rspamd log files to provide operational insight: rule effectiveness","sidebar":"docs"},"administration/rspamadm/operations":{"id":"administration/rspamadm/operations","title":"Operations & Monitoring","description":"These commands provide operational capabilities for monitoring, log analysis, and managing running Rspamd instances.","sidebar":"docs"},"administration/rspamadm/statistics-ml":{"id":"administration/rspamadm/statistics-ml","title":"Statistics & Machine Learning","description":"These commands help manage statistical classifiers (Bayes) and machine learning models (neural networks), including backup, migration, and performance evaluation.","sidebar":"docs"},"configuration/composites":{"id":"configuration/composites","title":"Composite symbols","description":"Composites combine multiple rules into more complex conditions. When a composite matches, it can add its own symbol and optionally remove the triggering symbols and/or their weights.","sidebar":"docs"},"configuration/index":{"id":"configuration/index","title":"Configuration Guide","description":"This section helps you understand and customize Rspamd configuration for your specific needs. Unlike pure reference documentation, these guides focus on what to configure and how to configure it effectively.","sidebar":"docs"},"configuration/logging":{"id":"configuration/logging","title":"Logging settings","description":"Introduction","sidebar":"docs"},"configuration/maps":{"id":"configuration/maps","title":"Rspamd maps","description":"Maps are one of the most important and flexible features in Rspamd, allowing for dynamic configuration of various elements without requiring service restarts. This article provides a comprehensive overview of Rspamd maps, their types, configuration options, and best practices.","sidebar":"docs"},"configuration/metrics":{"id":"configuration/metrics","title":"Actions and scores","description":"Introduction","sidebar":"docs"},"configuration/options":{"id":"configuration/options","title":"Common options","description":"Introduction","sidebar":"docs"},"configuration/redis":{"id":"configuration/redis","title":"Redis configuration","description":"This document provides instructions on setting up a Redis cache in Rspamd.","sidebar":"docs"},"configuration/selectors":{"id":"configuration/selectors","title":"Selectors","description":"Rspamd selectors is a Lua framework that allows functional extraction and processing of data from messages.","sidebar":"docs"},"configuration/settings":{"id":"configuration/settings","title":"User settings","description":"Introduction","sidebar":"docs"},"configuration/statistic":{"id":"configuration/statistic","title":"Statistics settings","description":"Introduction","sidebar":"docs"},"configuration/templates":{"id":"configuration/templates","title":"Configuration templates","description":"Introduction","sidebar":"docs"},"configuration/ucl":{"id":"configuration/ucl","title":"Universal configuration language (UCL)","de
1scription":"Table of Contents","sidebar":"docs"},"configuration/upstream":{"id":"configuration/upstream","title":"Upstreams configuration","description":"This document describes upstreams: list of servers that are selected by Rspamd using the specific algorithm to establish a connection.","sidebar":"docs"},"developers/architecture":{"id":"developers/architecture","title":"Rspamd Architecture","description":"Introduction","sidebar":"docs"},"developers/controller_endpoints":{"id":"developers/controller_endpoints","title":"Controller WebUI Endpoints Development Guide","description":"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.","sidebar":"docs"},"developers/encryption":{"id":"developers/encryption","title":"HTTPCrypt Encryption Protocol","description":"Overview","sidebar":"docs"},"developers/examples":{"id":"developers/examples","title":"Lua rules examples","description":"Here is the collection of the useful Lua rules snippets that are not the official rules but could be used to filter specific spam.","sidebar":"docs"},"developers/protocol":{"id":"developers/protocol","title":"Rspamd protocol","description":"Protocol basics","sidebar":"docs"},"developers/sync_async":{"id":"developers/sync_async","title":"Coroutines and async calls","description":"This guide describes how to make asynchronous calls from Rspamd plugins and rules.","sidebar":"docs"},"developers/writing_rules":{"id":"developers/writing_rules","title":"Rule Writing Workshop","description":"This workshop teaches you to create effective custom rules for Rspamd through progressive learning. We start with simple concepts and build toward complex, production-ready rules that solve real-world spam filtering challenges.","sidebar":"docs"},"developers/writing_tests":{"id":"developers/writing_tests","title":"Writing tests for Rspamd","description":"Testing is a crucial aspect of ensuring the stability of a product. In the case of Rspamd, there has historically been a lack of comprehensive testing, but we are actively working to improve this. We welcome and greatly appreciate any contributions from the community.","sidebar":"docs"},"downloads":{"id":"downloads","title":"Downloads","description":"Rspamd installation packages and build information","sidebar":"docs"},"faq":{"id":"faq","title":"Frequently Asked Questions","description":"This FAQ covers common questions about Rspamd installation, configuration, and operation. For detailed guides, see the documentation index.","sidebar":"docs"},"getting-started/first-setup":{"id":"getting-started/first-setup","title":"First Setup","description":"This guide covers basic Rspamd configuration for spam filtering.","sidebar":"docs"},"getting-started/index":{"id":"getting-started/index","title":"Getting Started with Rspamd","description":"Welcome to Rspamd! This guide will take you from complete beginner to running a production spam filtering system. Whether you\'re setting up a small business mail server or migrating from SpamAssassin, you\'ll find a clear path forward.","sidebar":"docs"},"getting-started/installation":{"id":"getting-started/installation","title":"Installation Guide","description":"This guide covers the recommended installation methods for Rspamd. Choose based on your deployment scenario:","sidebar":"docs"},"getting-started/understanding-rspamd":{"id":"getting-started/understanding-rspamd","title":"Understanding Rspamd","description":"Before diving into installation and configuration, it\'s essential to understand what Rspamd is, how it works, and what you can configure. This foundation will help you make informed decisions and avoid common pitfalls.","sidebar":"docs"},"guides/configuration/fundamentals":{"id":"guides/configuration/fundamentals","title":"Configuration Fundamentals","description":"Now that you have working spam filtering, let\'s understand what you can configure and how to configure it effectively. This knowledge will help you customize Rspamd for your specific needs.","sidebar":"docs"},"guides/configuration/index":{"id":"guides/configuration/index","title":"Configuration Guide","description":"This section helps you understand and customize Rspamd configuration for your specific needs. Unlike pure reference documentation, these guides focu
1s on what to configure and how to configure it effectively."},"guides/configuration/tool-selection":{"id":"guides/configuration/tool-selection","title":"Tool Selection Guide","description":"This guide helps you choose the right Rspamd tools and approaches for your specific situation. Rather than overwhelming you with options, we\'ll guide you through a simple decision process.","sidebar":"docs"},"index":{"id":"index","title":"About Rspamd","description":"Introduction","sidebar":"docs"},"lua/index":{"id":"lua/index","title":"Lua API documentation","description":"top}","sidebar":"docs"},"lua/lua_clickhouse":{"id":"lua/lua_clickhouse","title":"Module lua_clickhouse","description":"Module lua_clickhouse","sidebar":"docs"},"lua/lua_maps":{"id":"lua/lua_maps","title":"Module lua_maps","description":"Module lua_maps","sidebar":"docs"},"lua/lua_mime":{"id":"lua/lua_mime","title":"Module lua_mime","description":"Module lua_mime","sidebar":"docs"},"lua/lua_redis":{"id":"lua/lua_redis","title":"Module lua_redis","description":"Module lua_redis","sidebar":"docs"},"lua/lua_selectors":{"id":"lua/lua_selectors","title":"Module lua_selectors","description":"Module lua_selectors","sidebar":"docs"},"lua/lua_util":{"id":"lua/lua_util","title":"Module lua_util","description":"Module lua_util","sidebar":"docs"},"lua/rspamd_cdb":{"id":"lua/rspamd_cdb","title":"Module rspamd_cdb","description":"Module rspamd_cdb","sidebar":"docs"},"lua/rspamd_config":{"id":"lua/rspamd_config","title":"Module rspamd_config","description":"Module rspamd_config","sidebar":"docs"},"lua/rspamd_cryptobox":{"id":"lua/rspamd_cryptobox","title":"Module rspamd_cryptobox","description":"Module rspamd_cryptobox","sidebar":"docs"},"lua/rspamd_expression":{"id":"lua/rspamd_expression","title":"Module rspamd_expression","description":"Module rspamd_expression","sidebar":"docs"},"lua/rspamd_html":{"id":"lua/rspamd_html","title":"Module rspamd_html","description":"Module rspamd_html","sidebar":"docs"},"lua/rspamd_http":{"id":"lua/rspamd_http","title":"Module rspamd_http","description":"Module rspamd_http","sidebar":"docs"},"lua/rspamd_ip":{"id":"lua/rspamd_ip","title":"Module rspamd_ip","description":"Module rspamd_ip","sidebar":"docs"},"lua/rspamd_logger":{"id":"lua/rspamd_logger","title":"Module rspamd_logger","description":"Module rspamd_logger","sidebar":"docs"},"lua/rspamd_map":{"id":"lua/rspamd_map","title":"Module rspamd_map","description":"Module rspamd_map","sidebar":"docs"},"lua/rspamd_mempool":{"id":"lua/rspamd_mempool","title":"Module rspamd_mempool","description":"Module rspamd_mempool","sidebar":"docs"},"lua/rspamd_mimepart":{"id":"lua/rspamd_mimepart","title":"Module rspamd_mimepart","description":"Module rspamd_textpart","sidebar":"docs"},"lua/rspamd_parsers":{"id":"lua/rspamd_parsers","title":"Module rspamd_parsers","description":"Module rspamd_parsers","sidebar":"docs"},"lua/rspamd_redis":{"id":"lua/rspamd_redis","title":"Module rspamd_redis","description":"Module rspamd_redis","sidebar":"docs"},"lua/rspamd_regexp":{"id":"lua/rspamd_regexp","title":"Module rspamd_regexp","description":"Module rspamd_regexp","sidebar":"docs"},"lua/rspamd_resolver":{"id":"lua/rspamd_resolver","title":"Module rspamd_resolver","description":"Module rspamd_resolver","sidebar":"docs"},"lua/rspamd_sqlite3":{"id":"lua/rspamd_sqlite3","title":"Module rspamd_sqlite3","description":"Module rspamd_sqlite3","sidebar":"docs"},"lua/rspamd_task":{"id":"lua/rspamd_task","title":"Module rspamd_task","description":"Module rspamd_task","sidebar":"docs"},"lua/rspamd_tcp":{"id":"lua/rspamd_tcp","title":"Module rspamd_tcp","description":"Module rspamd_tcp","sidebar":"docs"},"lua/rspamd_text":{"id":"lua/rspamd_text","title":"Module rspamd_text","description":"Module rspamd_text","sidebar":"docs"},"lua/rspamd_trie":{"id":"lua/rspamd_trie","title":"Module rspamd_trie","description":"Module rspamd_trie","sidebar":"docs"},"lua/rspamd_udp":{"id":"lua/rspamd_udp","title":"Module rspamd_udp","description":"Module rspamd_udp","sidebar":"docs"},"lua/rspamd_upstream":{"id":"lua/rspamd_upstream","title":"Module rspamd_upstream","description":"Module rspamdupstreamlist","sidebar":"docs"},"lua/rspamd_url":{"id":"lua/rspamd_url","title":"Module rspamd_url","description":"Module rspamd_url","sidebar":"docs"},"lua/rspamd_util":{"id":"lua/rspamd_util","title":"Module rspamd_util","description":"Module rspamd_util","sidebar":"docs"},"lua/ucl":{"id":"lua/ucl","title":"Module ucl","description":"Module ucl","sidebar":"docs"},"modules/antivirus":{"id":"modules/antivirus","title":"Antivirus module","description":"The Antivirus module, available from Rspamd version 1.4, integrates with various virus scanners. Currently, the following scanners are supported:","sidebar":"docs"},"modules/arc":{"id":"modules/arc","title":"ARC module","description":"This module verifies and signs ARC (Authenticated Received Chain) signatures and seals for emails. ARC provides a mechanism for preserving email authentication results across trusted intermediaries, which is particularly useful for mailing lists and forwarding services that may modify messages in ways that break SPF and DKIM alignment.","sidebar":"docs"},"modules/asn":{"id":"modules/asn","title":"ASN module","description":"The ASN module retrieves Autonomous System Number (ASN) information and related data for the sender\'s IP address. This includes the ASN, country code of the ASN owner, and the IP\'s announced subnet (network prefix).","sidebar":"docs"},"modules/bayes_expiry":{"id":"modules/bayes_expiry","title":"Bayes expiry module","description":"The bayes expiry module provides intelligent expiration of statistical tokens for Redis-based Bayesian classifiers using the new schema storage format.","sidebar":"docs"}
1,"modules/chartable":{"id":"modules/chartable","title":"Chartable module","description":"This module allows to find number of characters from the different Unicode scripts in messages textual parts. If a message cannot be converted to UTF-8 (for example, when it contains unrecognized charset definition) then this module just checks number of transitions between ASCII and non ASCII characters.","sidebar":"docs"},"modules/clickhouse":{"id":"modules/clickhouse","title":"Clickhouse module","description":"The Clickhouse module pushes message-related metadata to ClickHouse, an open-source column-oriented database management system optimized for real-time analytics. Collected data includes sender/recipient information, scores, and metadata such as DKIM/DMARC/SPF/Bayes/Fuzzy status, URLs, and attachments.","sidebar":"docs"},"modules/dcc":{"id":"modules/dcc","title":"DCC module","description":"This module performs DCC (Distributed Checksum Clearinghouses) lookups to determine the bulkiness of a message based on how many recipients have seen similar content.","sidebar":"docs"},"modules/dkim":{"id":"modules/dkim","title":"DKIM module","description":"This module verifies the authenticity of emails through the analysis of DKIM signatures.","sidebar":"docs"},"modules/dkim_signing":{"id":"modules/dkim_signing","title":"DKIM signing module","description":"The Rspamd 1.5 version has introduced a convenient method of configuring DKIM signing through the addition of the DKIM signing module. A more customizable option is available in the DKIM module through the sign_condition.","sidebar":"docs"},"modules/dmarc":{"id":"modules/dmarc","title":"DMARC module","description":"DMARC is a technology that uses SPF and DKIM to enable domain owners to publish policies regarding how email messages with their domain in the (RFC5322) From field should be handled.","sidebar":"docs"},"modules/elastic":{"id":"modules/elastic","title":"Elasticsearch module","description":"Elasticsearch module pushes a variety of message-related metadata to an instance of Elasticsearch or OpenSearch.","sidebar":"docs"},"modules/emails":{"id":"modules/emails","title":"Emails module","description":"Deprecated, preserved for compatibility purposes! Use rbl module.","sidebar":"docs"},"modules/external_relay":{"id":"modules/external_relay","title":"External Relay module","description":"This plugin is designed for users who need to conduct scans after the MX has processed a message, such as those who receive mail over POP3 and forward it to a local MTA. Most users can disregard it.","sidebar":"docs"},"modules/external_services":{"id":"modules/external_services","title":"External Services module","description":"The External Services module, which has been available since Rspamd 1.9.0, enables integration with a range of external services.","sidebar":"docs"},"modules/force_actions":{"id":"modules/force_actions","title":"Force Actions module","description":"The purpose of this module is to force an action to be applied if particular symbols are found/not found and optionally return a specified SMTP message. It is available in version 1.5.0 and greater.","sidebar":"docs"},"modules/fuzzy_check":{"id":"modules/fuzzy_check","title":"Fuzzy check module","description":"The fuzzycheck module queries fuzzy storage workers to find messages matching known fuzzy patterns. It also handles learning (adding hashes to storage) when triggered via rspamc or the controller API.","sidebar":"docs"},"modules/gpt":{"id":"modules/gpt","title":"GPT Plugin","description":"The Rspamd GPT Plugin, introduced in Rspamd 3.9, integrates OpenAI\'s GPT API to enhance spam filtering capabilities using advanced natural language processing techniques. Here are the basic ideas behind this plugin:","sidebar":"docs"},"modules/greylisting":{"id":"modules/greylisting","title":"Greylisting module","description":"The purpose of this module is to delay messages that have a spam score above the greylisting action threshold.","sidebar":"docs"},"modules/hfilter":{"id":"modules/hfilter","title":"Hfilter module","description":"The hfilter module is a collection of lightweight checks targeting common problems and bad patterns in SMTP HELO, reverse DNS/hostname, From, recipients, message-id, and message content (URLs). It is used to add small, explainable signals that often correlate with spammy infrastru
1cture or message formatting issues.","sidebar":"docs"},"modules/history_redis":{"id":"modules/history_redis","title":"Redis history module","description":"The purpose of this module is to enable the storage of history in Redis lists with increased precision, thanks to its finer control over fields, optional compression, and out-of-the-box cluster support.","sidebar":"docs"},"modules/index":{"id":"modules/index","title":"Modules documentation","description":"Rspamd ships with a set of modules. Some modules are written in C to speed up","sidebar":"docs"},"modules/ip_score":{"id":"modules/ip_score","title":"IP Score module","description":"This module has been removed. The implementation file is a tombstone \u2014 configuring ip_score has no effect.","sidebar":"docs"},"modules/known_senders":{"id":"modules/known_senders","title":"Known senders module","description":"The known_senders module maintains a Redis-backed set of hashed sender addresses for a configured set of domains. It lets you:","sidebar":"docs"},"modules/maillist":{"id":"modules/maillist","title":"Mailing lists module","description":"The mailing lists module detects messages delivered via common mailing list software. It is typically used to reduce or suppress scores from rules that would otherwise trigger on list mail (e.g. bulk-like traits, footer content, or subject munging).","sidebar":"docs"},"modules/metadata_exporter":{"id":"modules/metadata_exporter","title":"Metadata exporter","description":"The Metadata exporter operates on a set of rules that identify interesting messages, and subsequently sends information based on these rules to an external service. The exporter supports Redis Pub/Sub, HTTP POST, and SMTP as built-in backends, while also allowing users to define custom backends as desired.","sidebar":"docs"},"modules/metric_exporter":{"id":"modules/metric_exporter","title":"Metric exporter","description":"Metric exporter collects statistics from Rspamd and feeds them to external monitoring/graphing systems.","sidebar":"docs"},"modules/mid":{"id":"modules/mid","title":"MID module","description":"The purpose of the MID module is to suppress the INVALIDMSGID (malformed Message-ID header) and MISSINGMID (missing Message-ID) rules for messages which are DKIM-signed by some particular domains. The module is disabled by default and requires a source map to be configured before it becomes active.","sidebar":"docs"},"modules/milter_headers":{"id":"modules/milter_headers","title":"Milter headers module","description":"The milter headers module (formerly known as rmilter headers) has been added in Rspamd 1.5 to provide a relatively simple way to configure adding/removing of headers via Rmilter (the alternative being to use the API). Despite its name, it is not tied to the milter protocol and also works with supported mailservers that use the HTTP interface such as Haraka and OpenSMTPD, as well as with Exim via the RSPAMC protocol (since Rspamd 4.0, header operations are serialised into $spamreport \u2014 see MTA integration).","sidebar":"docs"},"modules/mime_types":{"id":"modules/mime_types","title":"Mime types modules","description":"This module is intended to do some mime types sanity checks. That includes the following:","sidebar":"docs"},"modules/multimap":{"id":"modules/multimap","title":"Multimap module","description":"The Multimap module has been specifically designed to handle rules that are based on various types of lists which are dynamically updated by Rspamd, and are referred to as maps. This module is particularly useful for organizing whitelists, blacklists, and other lists via files. Additionally, it is capable of loading remote lists using the HTTP and HTTPS protocols or the RESP (REdis Serialization Protocol). This article provides a detailed explanation of all the configuration options and features available in this module.","sidebar":"docs"},"modules/mx_check":{"id":"modules/mx_check","title":"MX Check module","description":"The MX Check module verifies that the sending domains in a message actually have working mail infrastructure. For each candidate domain it resolves the MX records (falling back to A/AAAA per RFC 5321 \xa75.1 when no MX exists), classifies the resolved IP addresses, and \u2014 for routable, public addresses \u2014 opens a short TCP probe to port 25 to confirm that something is listening. The outcome is expressed through a rich set of symbols so that the spam filter can score legitimate senders, forged/parked domains, and transient failures differently.","sidebar":"docs"}
1,"modules/neural":{"id":"modules/neural","title":"Neural network module","description":"The neural network module performs post-classification of messages using a small neural network. It operates in two fundamentally different modes depending on configuration:","sidebar":"docs"},"modules/once_received":{"id":"modules/once_received","title":"Once received module","description":"This module is intended to do simple checks for mail with one Received header. The underlying concept is that genuine emails tend to have multiple received headers, whereas spam originating from compromised user devices often exhibit certain negative characteristics, such as the use of dynamic or broadband IP addresses.","sidebar":"docs"},"modules/p0f":{"id":"modules/p0f","title":"P0f module","description":"The P0f module performs passive OS fingerprinting by querying a local p0f daemon. This allows Rspamd to identify the operating system of the connecting client based on TCP/IP stack characteristics."},"modules/phishing":{"id":"modules/phishing","title":"Phishing module","description":"The purpose of this module is to identify potentially phished URLs.","sidebar":"docs"},"modules/ratelimit":{"id":"modules/ratelimit","title":"Ratelimit module","description":"Ratelimit plugin is designed to limit messages coming from certain senders, to","sidebar":"docs"},"modules/rbl":{"id":"modules/rbl","title":"RBL module","description":"The RBL module offers support for checking various message elements, such as the sender\'s IP addresses, URLs, emails, Received headers chains, SMTP data (e.g. HELO domain), and more, against a set of Runtime Black Lists (RBL) typically provided through dedicated DNS zones.","sidebar":"docs"},"modules/regexp":{"id":"modules/regexp","title":"Regexp module","description":"This is a core module that deals with regular expressions, internal functions and Lua code to filter messages.","sidebar":"docs"},"modules/replies":{"id":"modules/replies","title":"Replies module","description":"This module gathers the message-id header of emails that authenticated users have sent and saves the corresponding hashes to Redis. These hashes expire after a predetermined length of time, which can be set to a maximum of 24 hours by default. Additionally, the module creates hashes of the in-reply-to headers of all received messages and checks them for matches, i.e., messages that were sent in response to messages that our system initiated. After that it approves all recipients of the current sender and adds them to the local replies set of this sender (default maximum size is 20). local replies set is used to check approved recipients for current sender. This local replies set has the time to expire (default is 1 day) after which it is removed from the redis. After this all recipients are also added to the global replies set (default maximum size is 30). global replies set is used to determine whether the sender is approved. The module then generates a symbol that can be used to adjust the scoring or force an action, such as accepting the message with no action taken, depending on the configuration.","sidebar":"docs"},"modules/reputation":{"id":"modules/reputation","title":"Reputation module","description":"This plugin is designed to monitor the reputation of various objects and adjust scores accordingly.","sidebar":"docs"},"modules/rspamd_update":{"id":"modules/rspamd_update","title":"Rspamd update module","description":"This module enables you to load rspamd rules, adjust symbol scores, and implement actions without restarting the full daemon. The rspamd_update method facilitates the backporting of new rules and score changes without the need to update rspamd itself. This feature can be particularly useful if you wish to use the stable version of rspamd while simultaneously improving the quality of filtering.","sidebar":"docs"},"modules/spamassassin":{"id":"modules/spamassassin","title":"SpamAssassin rules module","description":"This module is intended to enable the adoption and reading of SpamAssassin rules within Rspamd.","sidebar":"docs"},"modules/spamtrap":{"id":"modules/spamtrap","title":"Spamtrap module","description":"The spamtrap module enables you to catch trapped spam emails, and even those from a catch-all domain. Its main purpose is to facilitate learning bayes spam, and if you operate your own fuzzy storage, to learn a fuzzy flag with a fuzzy weight. If you only wish to tag these emails, you may add a score for this symbol in the metrics. Later on, you can use this information in other modules, such as forceactions or metadataexporter. Some examples are provided below.","sidebar":"docs"},"modules/spf":{"id":"modules/spf","title":"SPF module","description":"The SPF module checks the sender\'s SPF Many mail providers use SPF records to determine eligible hosts for sending email on a specific domain. There are various ways to create and use SPF records, but they all primarily verify the sender\'s domain and IP.","sidebar":"docs"},"modules/surbl":{"id":"modules/surbl","title":"SURBL module","description":"This module performs scanning of URL\'s found in messages against a list of known","sidebar":"docs"},"modules/trie":{"id":"modules/trie","title":"Trie module","description":"Deprecation warning","sidebar":"docs"},"modules/url_redirector":{"id":"modules/url_redirector","title":"URL redirector module","description":"This module provides a hook for RBL module to resolve redirects.","sidebar":"docs"}
1,"modules/whitelist":{"id":"modules/whitelist","title":"Whitelist module","description":"Whitelist module is intended to decrease or increase scores for some messages that are known to","sidebar":"docs"},"other/gtube_patterns":{"id":"other/gtube_patterns","title":"GTUBE-like test patterns","description":"Unlike SpamAssassin where GTUBE carries a spam score, in Rspamd it triggers an action and inserts the GTUBE symbol. It also skips calling all the modules, even if they have the explicitdisable and ignorepassthrough flags.","sidebar":"docs"},"other/usage_policy":{"id":"other/usage_policy","title":"Services acceptable use policy","description":"If you use Rspamd fuzzy feeds and/or Rspamd URLs/Emails black lists, it is important to understand the current limits and whether you are eligible for free usage.","sidebar":"docs"},"support":{"id":"support","title":"Rspamd Support","description":"Support options for Rspamd users","sidebar":"docs"},"tutorials/clickhouse_analytics":{"id":"tutorials/clickhouse_analytics","title":"ClickHouse Analytics Platform","description":"ClickHouse integration with Rspamd allows you to build a powerful analytics platform for mail traffic analysis, threat intelligence, and compliance reporting. This tutorial guides you through setting up a complete analytical infrastructure.","sidebar":"docs"},"tutorials/dkim_signing_guide":{"id":"tutorials/dkim_signing_guide","title":"DKIM Signing Guide","description":"DKIM (DomainKeys Identified Mail) signing allows you to cryptographically sign outbound emails, proving they originated from your domain and haven\'t been tampered with. This tutorial provides step-by-step instructions for implementing DKIM signing with Rspamd.","sidebar":"docs"},"tutorials/feedback_from_users_with_IMAPSieve":{"id":"tutorials/feedback_from_users_with_IMAPSieve","title":"Getting feedback from users with IMAPSieve","description":"The solution is very similar to Replacing antispam plugin with IMAPSieve,","sidebar":"docs"},"tutorials/fuzzy_storage":{"id":"tutorials/fuzzy_storage","title":"Usage of fuzzy hashes","description":"Russian version","sidebar":"docs"},"tutorials/fuzzy_storage.ru":{"id":"tutorials/fuzzy_storage.ru","title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 fuzzy \u0445\u0435\u0448\u0435\u0439","description":"English version"},"tutorials/index":{"id":"tutorials/index","title":"Tutorials and Guides","description":"In this section you can find the current step-by-step tutorials covering various topics about Rspamd."},"tutorials/integration":{"id":"tutorials/integration","title":"MTA integration","description":"Rspamd provides flexible integration options with mail transfer agents (MTAs) through two primary methods: HTTP-based integration and Milter protocol integration. Each method has its advantages and is suitable for different deployment scenarios.","sidebar":"docs"},"tutorials/migrate_sa":{"id":"tutorials/migrate_sa","title":"Migrating from SpamAssassin","description":"This guide walks you through replacing SpamAssassin (SA) with Rspamd. It covers the key architectural differences, a step-by-step migration path, and practical advice for a safe rollout.","sidebar":"docs"},"tutorials/migration":{"id":"tutorials/migration","title":"Upgrading","description":"This document outlines the modifications to Rspamd in recent versions, including any incompatible changes, and provides instructions for updating your rules and configuration accordingly.","sidebar":"docs"},"tutorials/multimap_guide":{"id":"tutorials/multimap_guide","title":"Multimap Module Guide","description":"The multimap module is one of Rspamd\'s most powerful features for creating custom filtering rules without writing Lua code. This tutorial provides practical examples to help you implement real-world filtering scenarios.","sidebar":"docs"},"tutorials/quickstart":{"id":"tutorials/quickstart","title":"Quick start","description":"Rspamd is a powerful, fast and free spam filtering system that uses multiple analysis techniques to identify spam. This guide will help you understand, install, and configure Rspamd step by step."},"tutorials/redis_replication":{"id":"tutorials/redis_replication","title":"Multi-instance Redis replication","description":"This tutorial presents a step-by-step guide on setting up statistics and fuzzy storage replication on FreeBSD. The configuration procedures for other operating systems are quite similar.","sidebar":"docs"},"tutorials/scanning_outbound":{"id":"tutorials/scanning_outbound","title":"Scanning outbound mail","description":"Why scan outbound mail","sidebar":"docs"},"tutorials/settings_guide":{"id":"tutorials/settings_guide","title":"Settings Module Guide","description":"The settings module allows you to apply different Rspamd configurations based on various conditions like sender domain, recipient, IP address, or authentication status. This enables fine-grained control over spam filtering for different users and domains.","sidebar":"docs"}
1,"tutorials/site_contributing":{"id":"tutorials/site_contributing","title":"Contributing to Rspamd Documentation","description":"This guide explains how to contribute to the Rspamd documentation website, which is built using Docusaurus.","sidebar":"docs"},"tutorials/stunnel_setup":{"id":"tutorials/stunnel_setup","title":"Setup stunnel to protect Redis","description":"To establish encrypted communication between Redis masters and slaves, we recommend using stunnel. Stunnel serves as a TLS encryption wrapper between the client and server.","sidebar":"docs"},"workers/controller":{"id":"workers/controller","title":"Controller worker","description":"The controller worker is primarily utilized for managing Rspamd statistics, facilitating the learning process, and serving the WebUI.","sidebar":"docs"},"workers/fuzzy_storage":{"id":"workers/fuzzy_storage","title":"Fuzzy storage worker","description":"Fuzzy storage worker is intended to store fuzzy hashes of messages.","sidebar":"docs"},"workers/index":{"id":"workers/index","title":"Workers documentation","description":"Rspamd defines several types of worker processes, each designed for specific purposes.","sidebar":"docs"},"workers/normal":{"id":"workers/normal","title":"Normal worker (scanner)","description":"Rspamd normal worker is intended to scan messages for spam. It has the following configuration options available:","sidebar":"docs"},"workers/rspamd_proxy":{"id":"workers/rspamd_proxy","title":"Proxy worker","description":"This worker provides various functionalities for building multi-layered systems and handling the Milter protocol. Here is a brief list of functions provided by the proxy worker:","sidebar":"docs"}}}}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.