Runbook: Mail Issues¶
Login Failures¶
# Verify account exists
curl -u admin:PASSWORD http://127.0.0.1:8080/api/principal/{email}
# Check roles — must have "user" role
# Fix:
curl -X PATCH -u admin:PASSWORD \
-H "Content-Type: application/json" \
-d '{"roles": ["user"]}' \
http://127.0.0.1:8080/api/principal/{email}
Delivery Issues¶
# Check logs
journalctl -u stalwart-mail --since "1 hour ago"
# Check DNS records (MX, SPF, DKIM, DMARC)
dig MX kedevo.com
dig TXT kedevo.com
# Test SMTP
openssl s_client -connect post.kedevo.com:465
DKIM¶
Keys use format rsa-{domain} in Stalwart config.toml. Ensure DNS TXT record matches the public key.