Skip to content

/server/config/preview

POST
/server/config/preview
curl --request POST \
--url https://example.com/api/v1/server/config/preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "hostname": "example", "tls": { "mode": "acme", "acmeEmail": "example" }, "limits": { "messageSizeBytes": 52428800, "perUserMessagesPerHour": 500, "perDomainMessagesPerHour": 2000, "smtpdClientConnectionRateLimit": 60 }, "relay": null, "protocols": { "pop3": true }, "spam": { "rejectScore": 15, "addHeaderScore": 6, "greylistScore": 4 }, "mtaSts": { "mode": "testing", "maxAgeSeconds": 604800 }, "warmup": { "enabled": false, "targetPerHour": 2000 }, "abuse": { "enabled": true, "windowMinutes": 60, "minMessages": 20, "reputationRatio": 0.3, "hardBounceRatio": 0.6, "autoBlock": false }, "burstAlert": { "enabled": true, "windowMinutes": 60, "minEvents": 10 }, "authLimits": { "enabled": true, "windowMinutes": 15, "passwordAttempts": 10, "ipAttempts": 50, "totpAttempts": 5, "banMinutes": 60 }, "trustedNetworks": [], "outboundIpv6": false }'
Media typeapplication/json
object
hostname
required
string
tls
required
object
mode
required
string
Allowed values: acme byo none
acmeEmail
string
limits
required
object
messageSizeBytes
integer
default: 52428800 >= 1048576 <= 1073741824
perUserMessagesPerHour
integer
default: 500 <= 9007199254740991
perDomainMessagesPerHour
integer
default: 2000 <= 9007199254740991
smtpdClientConnectionRateLimit
integer
default: 60 <= 9007199254740991
relay
Any of:
object
host
required
string
port
integer
default: 587 >= 1 <= 65535
username
required
string
>= 1 characters
password
string
>= 1 characters
passwordUnreadable
boolean
spf
Any of:
string
protocols
object
pop3
boolean
default: true
spam
required
object
rejectScore
number
default: 15
addHeaderScore
number
default: 6
greylistScore
number
default: 4
mtaSts
object
mode
string
default: testing
Allowed values: none testing enforce
maxAgeSeconds
integer
default: 604800 >= 86400 <= 31557600
warmup
object
enabled
boolean
startedAt
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/
targetPerHour
integer
default: 2000 >= 10 <= 9007199254740991
abuse
object
enabled
boolean
default: true
windowMinutes
integer
default: 60 >= 5 <= 1440
minMessages
integer
default: 20 >= 5 <= 9007199254740991
reputationRatio
number
default: 0.3 >= 0.01 <= 1
hardBounceRatio
number
default: 0.6 >= 0.01 <= 1
autoBlock
boolean
burstAlert
object
enabled
boolean
default: true
windowMinutes
integer
default: 60 >= 5 <= 1440
minEvents
integer
default: 10 >= 1 <= 9007199254740991
authLimits
object
enabled
boolean
default: true
windowMinutes
integer
default: 15 >= 1 <= 1440
passwordAttempts
integer
default: 10 >= 1 <= 1000
ipAttempts
integer
default: 50 >= 1 <= 10000
totpAttempts
integer
default: 5 >= 1 <= 100
banMinutes
integer
default: 60 >= 1 <= 43200
trustedNetworks
Array<string>
default:
outboundIpv6
boolean

Default Response

Media typeapplication/json
object
key
additional properties
object
key
additional properties
string
Examplegenerated
{
"additionalProperty": {
"additionalProperty": "example"
}
}