Skip to content

SieveUserInterpreter

Configures the user-level Sieve script interpreter settings and limits.

This object can be configured from the WebUI under Settings › Sieve › User Interpreter

Type: Duration · default: "7d"

Default expiration time for IDs stored by the duplicate extension from user scripts

Type: Duration · default: "30d"

Default expiration time for IDs stored by the vacation extension

Type: SieveCapability[]

List of capabilities to disable in the user interpreter

Type: String[] · default: ["mailto"]

List of allowed URIs for the notify extension

Type: String[] · default: ["Original-Subject","Original-From","Received","Auto-Submitted"]

List of headers that cannot be deleted or added using the editheader extension

Type: String · default: "Automated reply"

Default subject of vacation responses

Type: String · default: "Auto: "

Default subject prefix of vacation responses

Type: UnsignedInt · default: 5000 · min: 1

Maximum number CPU cycles a script can use

Type: UnsignedInt · default: 1024 · min: 1

Maximum size of a header

Type: UnsignedInt · default: 3 · min: 1

Maximum number of includes

Type: UnsignedInt · default: 128 · min: 1

Maximum number of local variables

Type: UnsignedInt · default: 30 · min: 1

Maximum number of match variables

Type: UnsignedInt · default: 512 · min: 1

Maximum length of a script name

Type: UnsignedInt · default: 15 · min: 1

Maximum number of nested blocks

Type: UnsignedInt · default: 3 · min: 1

Maximum number of nested foreach blocks

Type: UnsignedInt · default: 3 · min: 1

Maximum number of nested includes

Type: UnsignedInt · default: 15 · min: 1

Maximum number of nested tests

Type: UnsignedInt · default: 3

Maximum number of outgoing messages

Type: UnsignedInt · default: 10 · min: 1

Maximum number of received headers

Type: UnsignedInt · default: 1

Maximum number of redirects

Type: Size · default: "100kb" · min: 1

Maximum size of a script

Type: UnsignedInt · default: 4096 · min: 1

Maximum length of a string

Type: UnsignedInt · default: 32 · min: 1

Maximum length of a variable name

Type: UnsignedInt · default: 4096 · min: 1

Maximum size of a variable

Type: UnsignedInt? · default: 100 · min: 1

The default maximum number of sieve scripts a user can create

The SieveUserInterpreter singleton is available via the urn:stalwart:jmap capability.

This is a standard Foo/get method as defined in RFC 8620, Section 5.1.

For singletons, the ids argument should be the literal singleton (or null to return the single instance).

This method requires the sysSieveUserInterpreterGet permission.

Terminal window
curl -X POST https://mail.example.com/api \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"methodCalls": [
[
"x:SieveUserInterpreter/get",
{
"ids": [
"singleton"
]
},
"c1"
]
],
"using": [
"urn:ietf:params:jmap:core",
"urn:stalwart:jmap"
]
}'

This is a standard Foo/set method as defined in RFC 8620, Section 5.3.

For singletons, only the update argument with id singleton is accepted; create and destroy arguments are rejected.

This method requires the sysSieveUserInterpreterUpdate permission.

Terminal window
curl -X POST https://mail.example.com/api \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"methodCalls": [
[
"x:SieveUserInterpreter/set",
{
"update": {
"singleton": {
"defaultSubject": "updated value"
}
}
},
"c1"
]
],
"using": [
"urn:ietf:params:jmap:core",
"urn:stalwart:jmap"
]
}'

stalwart-cli wraps the same JMAP calls. See the CLI reference for installation, authentication, and general usage.

Terminal window
stalwart-cli get SieveUserInterpreter
Terminal window
stalwart-cli update SieveUserInterpreter --field defaultSubject='updated value'
ValueLabel
envelopeEnvelope Test
envelope-dsnEnvelope DSN (Delivery Status Notification)
envelope-deliverbyEnvelope Deliver-By
fileintoFile Into Mailbox
encoded-characterEncoded Character Support
comparator-elboniaElbonia Comparator
comparator-i;octetOctet Comparator
comparator-i;ascii-casemapASCII Case Map Comparator
comparator-i;ascii-numericASCII Numeric Comparator
bodyBody Test
convertMessage Conversion
copyCopying Without Side Effects
relationalRelational Tests
dateDate Tests
indexHeader Index
duplicateDuplicate Delivery Detection
variablesVariables
editheaderEdit Header
foreverypartFor Every MIME Part
mimeMIME Part Tests
replaceMIME Part Replacement
encloseMIME Part Enclosure
extracttextExtract Text from MIME Parts
enotifyEmail Notifications
redirect-dsnRedirect with DSN
redirect-deliverbyRedirect with Deliver-By
environmentEnvironment Information
rejectReject Message
erejectExtended Reject (SMTP-level)
extlistsExternally Stored Lists
subaddressSubaddress (Detail) Matching
vacationVacation Auto-Reply
vacation-secondsVacation with Seconds Parameter
fccFile Carbon Copy
mailboxMailbox Existence Check
mailboxidMailbox by OBJECTID
mboxmetadataMailbox Metadata Access
servermetadataServer Metadata Access
special-useSpecial-Use Mailboxes
imap4flagsIMAP Flags
ihaveConditional Extension Test
imapsieveIMAP Events in Sieve
includeScript Inclusion
regexRegular Expression Matching
spamtestSpam Test
spamtestplusExtended Spam Test
virustestVirus Test
vnd.stalwart.whileWhile Loop (Stalwart)
vnd.stalwart.expressionsExpression Evaluation (Stalwart)