Example configuration
# Logging configuration
[log]
level = "info"
format = "fmt"
# Server configuration
[server]
workers = 4
max_retries = 3
pool_size = 50
# Multiple listeners
[[server.listeners]]
addr = "0.0.0.0:25"
[server.listeners.tls]
cert_path = "/etc/hedwig/server.crt"
key_path = "/etc/hedwig/server.key"
[[server.listeners]]
addr = "127.0.0.1:2525" # Local plaintext listener
# Authentication
[[server.auth]]
username = "smtp_user"
password = "secure_password"
# DKIM signing
[server.dkim]
domain = "example.com"
selector = "hedwig"
private_key = "/etc/hedwig/dkim-private.pem"
key_type = "rsa"
# Rate limiting
[server.rate_limits]
enabled = true
default_limit = 60
[server.rate_limits.domain_limits]
"gmail.com" = 30
"outlook.com" = 25
"yahoo.com" = 20
# Metrics
[server.metrics]
bind = "0.0.0.0:9090"
# Health checks
[server.health]
bind = "0.0.0.0:8080"
# Storage
[storage]
storage_type = "fs"
base_path = "/var/spool/hedwig"
[storage.cleanup]
bounced_retention = "7d"
deferred_retention = "2d"
interval = "1h"
# Domain filtering
[[filters]]
type = "from_domain_filter"
domain = ["trusted1.com", "trusted2.com"]
action = "allow"
[[filters]]
type = "to_domain_filter"
domain = ["spam.com"]
action = "deny"