/server/config (PUT)
PUT
/server/config
const url = 'https://example.com/api/v1/server/config';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"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}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://example.com/api/v1/server/config \ --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 }'Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
hostname
required
string
tls
required
object
mode
required
string
acmeEmail
string
limits
required
object
messageSizeBytes
integer
perUserMessagesPerHour
integer
perDomainMessagesPerHour
integer
smtpdClientConnectionRateLimit
integer
relay
protocols
object
pop3
boolean
spam
required
object
rejectScore
number
addHeaderScore
number
greylistScore
number
mtaSts
object
mode
string
maxAgeSeconds
integer
warmup
object
enabled
boolean
startedAt
string format: date-time
targetPerHour
integer
abuse
object
enabled
boolean
windowMinutes
integer
minMessages
integer
reputationRatio
number
hardBounceRatio
number
autoBlock
boolean
burstAlert
object
enabled
boolean
windowMinutes
integer
minEvents
integer
authLimits
object
enabled
boolean
windowMinutes
integer
passwordAttempts
integer
ipAttempts
integer
totpAttempts
integer
banMinutes
integer
trustedNetworks
Array<string>
outboundIpv6
boolean
Responses
Section titled “Responses”Default Response
Media typeapplication/json
object
version
required
integer
config
required
object
hostname
required
string
tls
required
object
mode
required
string
acmeEmail
string
limits
required
object
messageSizeBytes
required
integer
perUserMessagesPerHour
required
integer
perDomainMessagesPerHour
required
integer
smtpdClientConnectionRateLimit
required
integer
relay
required
protocols
required
object
pop3
required
boolean
spam
required
object
rejectScore
required
number
addHeaderScore
required
number
greylistScore
required
number
mtaSts
required
object
mode
required
string
maxAgeSeconds
required
integer
warmup
required
object
enabled
required
boolean
startedAt
string format: date-time
targetPerHour
required
integer
abuse
required
object
enabled
required
boolean
windowMinutes
required
integer
minMessages
required
integer
reputationRatio
required
number
hardBounceRatio
required
number
autoBlock
required
boolean
burstAlert
required
object
enabled
required
boolean
windowMinutes
required
integer
minEvents
required
integer
authLimits
required
object
enabled
required
boolean
windowMinutes
required
integer
passwordAttempts
required
integer
ipAttempts
required
integer
totpAttempts
required
integer
banMinutes
required
integer
trustedNetworks
required
Array<string>
outboundIpv6
required
boolean
status
required
string
createdAt
required
string format: date-time
Example
{ "config": { "tls": { "mode": "acme" }, "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 }, "status": "pending"}