Skip to content
Platform
Platform
Mail Server
Collaboration
MTA
Anti-spam
Architecture
Integrations
Solutions
Managed e-mail
Migration
Editions
Editions
Enterprise
Community
Compare
Pricing
Evaluate
Documentation
Install
Linux / macOS
Windows
Docker
Overview
Get started
Configuration
Management
Development
FAQ
Settings
Server
Storage
Access Control
Encryption
MTA
Email Store
Collaboration
Spam & Phishing
Sieve
Clustering
Telemetry
Support
Support
Overview
Support Portal
Company
Company
About
Blog
Contact
Legal
Search
Ctrl
K
Cancel
Get Stalwart
Platform
Platform
Mail Server
Collaboration
MTA
Anti-spam
Architecture
Integrations
Solutions
Managed e-mail
Migration
Editions
Enterprise
Community
Compare
Pricing
Evaluate
Documentation
Overview
Get started
Configuration
Management
Development
FAQ
Install
Linux / macOS
Windows
Docker
Support
Overview
Support Portal
Company
About
Blog
Contact
Legal
Contact
Get Stalwart
Stalwart Blog
Getting started
Overview
System requirements
Installation
Linux, macOS and FreeBSD
Windows
Docker
Securing the server
Next steps
Setup wizard
Choosing a database
Choosing a directory
DNS records
Troubleshooting installation
Upgrading
Migrating from another system
Configuration
Overview
Bootstrap mode
Recovery mode
Environment variables
Declarative deployments
Expressions
Overview
Operators
Functions
Lookup lists
Overview
Local lists
Remote lists
Values
Variables
Object encoding
Server settings
System settings
Listeners
TLS
Overview
Certificates
ACME
Overview
Challenge types
Configuration
Reverse Proxy
Overview
PROXY protocol
Caddy
HAProxy
NGINX
Traefik
Auto-ban
ASN and GeoIP
DNS
Overview
DNS providers
DNS provider notes
DNS resolver
Autoconfiguration
Setting up clients
AI models
Object metadata
Enterprise edition
Storage settings
Overview
Data store
Blob store
Search store
Search indexing
Attachment text extraction
In-memory store
Cache swapping
Data retention and reclaiming disk space
Backends
Overview
RocksDB
FoundationDB
PostgreSQL
MySQL / MariaDB
SQLite
S3-compatible
Filesystem
ElasticSearch
Meilisearch
Redis
Azure Blob Storage
Composite stores
Access Control
Overview
Accounts
Accounts
User accounts
Group accounts
Managing accounts
Authentication
Request authentication
Passwords
Two-factor authentication
App passwords
API keys
Authorization
Overview
Permissions
Roles
Administrators
Tenants
Quotas
OAuth and OpenID Connect
Overview
OAuth clients
Registering an application
Client ID Metadata Documents
Authorization requests
Scopes
Consent and connected applications
Tokens
Mail, calendar and contacts clients
OpenID Connect
Endpoints and metadata
Directories
Overview
Internal
SQL Database
LDAP Server
OpenID Connect
SCIM Provisioning
Overview
Provisioning models
Configuration
Endpoints and protocol support
Attribute mapping
Identity providers
Overview
Microsoft Entra ID
Okta
Keycloak
Domains
Overview
Addresses, aliases and catch-all
Automatic DNS records
Publishing an MTA-STS policy
TLS certificates
DKIM key rotation
HTTP settings
Overview
HTTP server
Access control
JMAP
Overview
Limits
WebSockets
Push notifications
JMAP capabilities
WebDAV
Overview
Limits
Form submission
HTTP API
Email settings
Overview
Settings
Message and mailbox limits
IMAP and POP3
Rate limiting
Mail retention
Management
Mailing lists
Masked email
MTA settings
Overview
Inbound
Overview
Connect stage
EHLO stage
MAIL FROM stage
RCPT TO stage
DATA stage
AUTH stage
Rate limits
Outbound
Strategies
Queues
Scheduling
Routing
Connection
TLS
Rate limits
Quotas
Filtering
Overview
Milter filters
MTA hooks
Rewriting
Overview
Envelope
Headers
Content
Sender authentication
DKIM
DKIM overview
Signing
Verifying
DKIM2
SPF
ARC
DMARC
Reverse DNS
Transport security
Overview
DANE
MTA-STS
Reports
Overview
Delivery status notifications
DKIM
SPF
DMARC
Analysis
TLS
Queue and report management
Collaboration settings
Overview
WebDAV
Calendar
Scheduling
Free/busy and availability
Notifications
Contacts
File Storage
Sharing
Encryption settings
Overview
OpenPGP
S/MIME
Managing encryption
Spam & Phishing filter
Overview
Settings
General settings
Scores
File extensions
Domain lists
Statistical classifier
Overview
Training
Automatic learning
Hyperparameters
AI classifier
AI classifier
Enabling the AI classifier
Rules
DNS blocklists
Phishing protection
Collaborative digests
Trusted senders
Greylisting
Spam traps
Sieve scripting
Overview
Interpreters
Trusted interpreter
Untrusted interpreter
Variables
Expressions
AI models in Sieve
User scripts: ManageSieve and JMAP
Function reference
Examples
Clustering & HA
Overview
Deployment
Overview
Sizing
Storage
Configuration
Overview
Node ID
Coordination mechanism
Load balancing
Roles
Coordination
Overview
Peer-to-Peer
Apache Kafka / Redpanda
NATS
Redis
Orchestration
Overview
Kubernetes
Kubernetes chart reference
Docker Swarm
Telemetry
Overview
Events
Tracing & Logging
Overview
OpenTelemetry
Tracers
Metrics
Overview
OpenTelemetry
Prometheus
Webhooks
Alerts
Live telemetry
History
Management
Performance tuning
Measuring performance
Sizing the caches
Sizing memory
Tuning the data store
Speeding up search indexing
Tuning mail throughput
Connection and request limits
Tuning a cluster
How caching works
CPU instruction sets
Performance tuning
Management
Overview
Applications
Overview
Updates
Tasks & Actions
Overview
Tasks
Actions
Web-based Administration
Overview
Account Manager
Branding
Command Line Interface
Overview
Exploring the schema
Fetching a single object
Searching and listing
Creating objects
Updating objects
Removing objects
Declarative bulk operations
Plan file format
Idempotent plans
Infrastructure as code
Exporting server state
Maintenance
Backup and restore
Database Console
Database Migration
Recovering deleted items
Troubleshooting
Migration
Overview
Upgrading from Stalwart 0.16
Overview
Quick migration guide
Installation
Preparing the migration
Running the migration
Verifying the migration
Rolling back
Converting CLI plans
Troubleshooting
Migration Guide
Overview
Preparation
Configuring the new deployment
Configuring the proxy
Configuring the source server
Overview
Previous Stalwart versions
Dovecot and Postfix
Starting the proxy
Migrating accounts
Finalizing the migration
Hosted services
Troubleshooting
Migration proxy
Overview
Installation
Configuration
Destinations
Listeners
Mappings
Overview
Routing
Overview
Mail protocols
SMTP and submission
HTTP
Management
Overview
Observability
Cache invalidation
Management API
Troubleshooting
Examples
Migrating from Dovecot
Migrating between Stalwart servers
Cluster routing
Vandelay (import and export)
Overview
Installation
Usage
Import
Overview
JMAP
IMAP
CalDAV
CardDAV
WebDAV
ManageSieve
Maildir
Google Takeout
Microsoft Exchange (EWS)
Microsoft Exchange (Graph)
Export
Backup
Development
Database Internals
Compiling Stalwart
Testing Stalwart
RFCs
URN Namespace
Schema reference
Overview
Objects
Account
AccountPassword
AccountSettings
AcmeProvider
Action
AddressBook
AiModel
Alert
AllowedIp
ApiKey
Application
AppPassword
ArchivedItem
ArfExternalReport
Asn
Authentication
BlobStore
BlockedIp
Bootstrap
Cache
Calendar
CalendarAlarm
CalendarScheduling
Certificate
ClusterNode
ClusterRole
Coordinator
DataRetention
DataStore
Directory
DkimReportSettings
DkimSignature
DmarcExternalReport
DmarcInternalReport
DmarcReportSettings
DnsResolver
DnsServer
Domain
DsnReportSettings
Email
Enterprise
EventTracingLevel
FileStorage
Http
HttpForm
HttpLookup
Imap
IndexQueueStatus
InMemoryStore
Jmap
Log
MailingList
MaskedEmail
MemoryLookupKey
MemoryLookupKeyValue
Metadata
Metric
Metrics
MetricsStore
MtaConnectionStrategy
MtaDeliverySchedule
MtaExtensions
MtaHook
MtaInboundSession
MtaInboundThrottle
MtaMilter
MtaOutboundStrategy
MtaOutboundThrottle
MtaQueueQuota
MtaRoute
MtaStageAuth
MtaStageConnect
MtaStageData
MtaStageEhlo
MtaStageMail
MtaStageRcpt
MtaSts
MtaTlsStrategy
MtaVirtualQueue
NetworkListener
OAuthClient
OAuthGrant
OidcProvider
PublicKey
QueuedMessage
ReportSettings
Role
Search
SearchStore
Security
SenderAuth
Sharing
SieveSystemInterpreter
SieveSystemScript
SieveUserInterpreter
SieveUserScript
SpamAi
SpamClassifier
SpamDnsblServer
SpamDnsblSettings
SpamFileExtension
SpamPyzor
SpamRule
SpamSettings
SpamTag
SpamTrainingSample
SpfReportSettings
StoreLookup
SystemSettings
Task
TaskManager
Tenant
TlsExternalReport
TlsInternalReport
TlsReportSettings
Trace
Tracer
TracingStore
WebDav
WebHook
Enums
DnsServerBootstrapType
DnsServerType
Key
Locale
TimeZone
Expressions
Variables
HttpVariable
MtaConnectionVariable
MtaEhloVariable
MtaMailFromVariable
MtaQueueHostVariable
MtaQueueRcptVariable
MtaQueueSenderVariable
MtaRcptDomainVariable
MtaRcptToVariable
MtaRcptVariable
SpamAiVariable
SpamDefaultVariable
SpamEmailVariable
SpamGenericVariable
SpamHeaderVariable
SpamIpVariable
SpamUrlVariable
Constants
MtaAggregateConstant
MtaAuthTypeConstant
MtaPriorityConstant
MtaVerifyConstant
Permissions
Events
Metrics
FAQ
FAQ
Installation and the WebUI
Accounts, domains and addresses
Sign-in, directories and API access
TLS, DNS, proxies and bans
Mail delivery, spam and Sieve
Storage, backup, logs and clusters
Calendars, contacts and clients
Licensing, migration and limits
GitHub
RSS
Stalwart Blog
Select theme
Dark
Light
Auto
Maintenance
Backup and restore
Database
Migration
Recovering deleted items