mirror of
https://github.com/stalwartlabs/mail-server.git
synced 2025-02-23 23:43:10 +08:00
175 lines
4.3 KiB
TOML
175 lines
4.3 KiB
TOML
#############################################
|
|
# Directory configuration
|
|
#############################################
|
|
|
|
[directory."sql"]
|
|
type = "sql"
|
|
address = "sqlite://__PATH__/data/accounts.sqlite3?mode=rwc"
|
|
|
|
[directory."sql".options]
|
|
catch-all = true
|
|
subaddressing = true
|
|
superuser-group = "superusers"
|
|
|
|
[directory."sql".pool]
|
|
max-connections = 10
|
|
min-connections = 0
|
|
#idle-timeout = "10m"
|
|
|
|
[directory."sql".cache]
|
|
entries = 500
|
|
ttl = {positive = '1h', negative = '10m'}
|
|
|
|
[directory."sql".query]
|
|
name = "SELECT name, type, secret, description, quota FROM accounts WHERE name = ? AND active = true"
|
|
members = "SELECT member_of FROM group_members WHERE name = ?"
|
|
recipients = "SELECT name FROM emails WHERE address = ?"
|
|
emails = "SELECT address FROM emails WHERE name = ? AND type != 'list' ORDER BY type DESC, address ASC"
|
|
verify = "SELECT address FROM emails WHERE address LIKE '%' || ? || '%' AND type = 'primary' ORDER BY address LIMIT 5"
|
|
expand = "SELECT p.address FROM emails AS p JOIN emails AS l ON p.name = l.name WHERE p.type = 'primary' AND l.address = ? AND l.type = 'list' ORDER BY p.address LIMIT 50"
|
|
domains = "SELECT 1 FROM emails WHERE address LIKE '%@' || ? LIMIT 1"
|
|
|
|
[directory."sql".columns]
|
|
name = "name"
|
|
description = "description"
|
|
secret = "secret"
|
|
email = "address"
|
|
quota = "quota"
|
|
type = "type"
|
|
|
|
[directory."ldap"]
|
|
type = "ldap"
|
|
address = "ldap://localhost:3893"
|
|
base-dn = "dc=example,dc=org"
|
|
|
|
[directory."ldap".bind]
|
|
dn = "cn=serviceuser,ou=svcaccts,dc=example,dc=org"
|
|
secret = "mysecret"
|
|
|
|
[directory."ldap".cache]
|
|
entries = 500
|
|
ttl = {positive = '1h', negative = '10m'}
|
|
|
|
[directory."ldap".options]
|
|
catch-all = true
|
|
subaddressing = true
|
|
superuser-group = "superusers"
|
|
|
|
[directory."ldap".pool]
|
|
max-connections = 10
|
|
min-connections = 0
|
|
max-lifetime = "30m"
|
|
idle-timeout = "10m"
|
|
connect-timeout = "30s"
|
|
|
|
[directory."ldap".filter]
|
|
name = "(&(|(objectClass=posixAccount)(objectClass=posixGroup))(uid=?))"
|
|
email = "(&(|(objectClass=posixAccount)(objectClass=posixGroup))(|(mail=?)(mailAlias=?)(mailList=?)))"
|
|
verify = "(&(|(objectClass=posixAccount)(objectClass=posixGroup))(|(mail=*?*)(mailAlias=*?*)))"
|
|
expand = "(&(|(objectClass=posixAccount)(objectClass=posixGroup))(mailList=?))"
|
|
domains = "(&(|(objectClass=posixAccount)(objectClass=posixGroup))(|(mail=*@?)(mailAlias=*@?)))"
|
|
|
|
[directory."ldap".object-classes]
|
|
user = "posixAccount"
|
|
group = "posixGroup"
|
|
|
|
[directory."ldap".attributes]
|
|
name = "uid"
|
|
description = ["principalName", "description"]
|
|
secret = "userPassword"
|
|
groups = ["memberOf", "otherGroups"]
|
|
email = "mail"
|
|
email-alias = "mailAlias"
|
|
quota = "diskQuota"
|
|
|
|
[directory."imap"]
|
|
type = "imap"
|
|
address = "127.0.0.1"
|
|
port = 993
|
|
|
|
[directory."imap".pool]
|
|
max-connections = 10
|
|
min-connections = 0
|
|
max-lifetime = "30m"
|
|
idle-timeout = "10m"
|
|
connect-timeout = "30s"
|
|
|
|
[directory."imap".tls]
|
|
implicit = true
|
|
allow-invalid-certs = true
|
|
|
|
[directory."imap".cache]
|
|
entries = 500
|
|
ttl = {positive = '1h', negative = '10m'}
|
|
|
|
[directory."imap".lookup]
|
|
domains = ["__DOMAIN__"]
|
|
|
|
[directory."lmtp"]
|
|
type = "lmtp"
|
|
address = "127.0.0.1"
|
|
port = 11200
|
|
|
|
[directory."lmtp".limits]
|
|
auth-errors = 3
|
|
rcpt = 5
|
|
|
|
[directory."lmtp".pool]
|
|
max-connections = 10
|
|
min-connections = 0
|
|
max-lifetime = "30m"
|
|
idle-timeout = "10m"
|
|
connect-timeout = "30s"
|
|
|
|
[directory."lmtp".tls]
|
|
implicit = false
|
|
allow-invalid-certs = true
|
|
|
|
[directory."lmtp".cache]
|
|
entries = 500
|
|
ttl = {positive = '1h', negative = '10m'}
|
|
|
|
[directory."lmtp".lookup]
|
|
domains = ["__DOMAIN__"]
|
|
|
|
[directory."memory"]
|
|
type = "memory"
|
|
|
|
[directory."memory".options]
|
|
catch-all = true
|
|
subaddressing = true
|
|
superuser-group = "superusers"
|
|
|
|
[[directory."memory".users]]
|
|
name = "admin"
|
|
description = "Superuser"
|
|
secret = "changeme"
|
|
email = ["postmaster@__DOMAIN__"]
|
|
member-of = ["superusers"]
|
|
|
|
[[directory."memory".users]]
|
|
name = "jane"
|
|
description = "Jane Doe"
|
|
secret = "abcde"
|
|
email = ["jane@__DOMAIN__", "jane.doe@__DOMAIN__"]
|
|
email-list = ["info@__DOMAIN__"]
|
|
member-of = ["sales", "support"]
|
|
|
|
[[directory."memory".users]]
|
|
name = "bill"
|
|
description = "Bill Foobar"
|
|
secret = "$2y$05$bvIG6Nmid91Mu9RcmmWZfO5HJIMCT8riNW0hEp8f6/FuA2/mHZFpe"
|
|
quota = 50000000
|
|
email = ["bill@__DOMAIN__", "bill.foobar@__DOMAIN__"]
|
|
email-list = ["info@__DOMAIN__"]
|
|
|
|
[[directory."memory".groups]]
|
|
name = "sales"
|
|
description = "Sales Team"
|
|
|
|
[[directory."memory".groups]]
|
|
name = "support"
|
|
description = "Support Team"
|
|
|
|
[directory."memory".lookup]
|
|
domains = ["__DOMAIN__"]
|