SieveUserInterpreter
SieveUserInterpreter
Section titled “SieveUserInterpreter”Configures the user-level Sieve script interpreter settings and limits.
This object can be configured from the WebUI under Settings › Sieve › User Interpreter
Fields
Section titled “Fields”defaultExpiryDuplicate
Section titled “defaultExpiryDuplicate”Type:
Duration· default:"7d"Default expiration time for IDs stored by the duplicate extension from user scripts
defaultExpiryVacation
Section titled “defaultExpiryVacation”Type:
Duration· default:"30d"Default expiration time for IDs stored by the vacation extension
disableCapabilities
Section titled “disableCapabilities”Type:
SieveCapability[]List of capabilities to disable in the user interpreter
allowedNotifyUris
Section titled “allowedNotifyUris”Type:
String[]· default:["mailto"]List of allowed URIs for the notify extension
protectedHeaders
Section titled “protectedHeaders”Type:
String[]· default:["Original-Subject","Original-From","Received","Auto-Submitted"]List of headers that cannot be deleted or added using the editheader extension
defaultSubject
Section titled “defaultSubject”Type:
String· default:"Automated reply"Default subject of vacation responses
defaultSubjectPrefix
Section titled “defaultSubjectPrefix”Type:
String· default:"Auto: "Default subject prefix of vacation responses
maxCpuCycles
Section titled “maxCpuCycles”Type:
UnsignedInt· default:5000· min: 1Maximum number CPU cycles a script can use
maxHeaderSize
Section titled “maxHeaderSize”Type:
UnsignedInt· default:1024· min: 1Maximum size of a header
maxIncludes
Section titled “maxIncludes”Type:
UnsignedInt· default:3· min: 1Maximum number of includes
maxLocalVars
Section titled “maxLocalVars”Type:
UnsignedInt· default:128· min: 1Maximum number of local variables
maxMatchVars
Section titled “maxMatchVars”Type:
UnsignedInt· default:30· min: 1Maximum number of match variables
maxScriptNameLength
Section titled “maxScriptNameLength”Type:
UnsignedInt· default:512· min: 1Maximum length of a script name
maxNestedBlocks
Section titled “maxNestedBlocks”Type:
UnsignedInt· default:15· min: 1Maximum number of nested blocks
maxNestedForEvery
Section titled “maxNestedForEvery”Type:
UnsignedInt· default:3· min: 1Maximum number of nested foreach blocks
maxNestedIncludes
Section titled “maxNestedIncludes”Type:
UnsignedInt· default:3· min: 1Maximum number of nested includes
maxNestedTests
Section titled “maxNestedTests”Type:
UnsignedInt· default:15· min: 1Maximum number of nested tests
maxOutMessages
Section titled “maxOutMessages”Type:
UnsignedInt· default:3Maximum number of outgoing messages
maxReceivedHeaders
Section titled “maxReceivedHeaders”Type:
UnsignedInt· default:10· min: 1Maximum number of received headers
maxRedirects
Section titled “maxRedirects”Type:
UnsignedInt· default:1Maximum number of redirects
maxScriptSize
Section titled “maxScriptSize”Type:
Size· default:"100kb"· min: 1Maximum size of a script
maxStringLength
Section titled “maxStringLength”Type:
UnsignedInt· default:4096· min: 1Maximum length of a string
maxVarNameLength
Section titled “maxVarNameLength”Type:
UnsignedInt· default:32· min: 1Maximum length of a variable name
maxVarSize
Section titled “maxVarSize”Type:
UnsignedInt· default:4096· min: 1Maximum size of a variable
maxScripts
Section titled “maxScripts”Type:
UnsignedInt?· default:100· min: 1The default maximum number of sieve scripts a user can create
JMAP API
Section titled “JMAP API”The SieveUserInterpreter singleton is available via the urn:stalwart:jmap capability.
x:SieveUserInterpreter/get
Section titled “x:SieveUserInterpreter/get”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.
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" ] }'x:SieveUserInterpreter/set
Section titled “x:SieveUserInterpreter/set”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.
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.
stalwart-cli get SieveUserInterpreterUpdate
Section titled “Update”stalwart-cli update SieveUserInterpreter --field defaultSubject='updated value'SieveCapability
Section titled “SieveCapability”| Value | Label |
|---|---|
envelope | Envelope Test |
envelope-dsn | Envelope DSN (Delivery Status Notification) |
envelope-deliverby | Envelope Deliver-By |
fileinto | File Into Mailbox |
encoded-character | Encoded Character Support |
comparator-elbonia | Elbonia Comparator |
comparator-i;octet | Octet Comparator |
comparator-i;ascii-casemap | ASCII Case Map Comparator |
comparator-i;ascii-numeric | ASCII Numeric Comparator |
body | Body Test |
convert | Message Conversion |
copy | Copying Without Side Effects |
relational | Relational Tests |
date | Date Tests |
index | Header Index |
duplicate | Duplicate Delivery Detection |
variables | Variables |
editheader | Edit Header |
foreverypart | For Every MIME Part |
mime | MIME Part Tests |
replace | MIME Part Replacement |
enclose | MIME Part Enclosure |
extracttext | Extract Text from MIME Parts |
enotify | Email Notifications |
redirect-dsn | Redirect with DSN |
redirect-deliverby | Redirect with Deliver-By |
environment | Environment Information |
reject | Reject Message |
ereject | Extended Reject (SMTP-level) |
extlists | Externally Stored Lists |
subaddress | Subaddress (Detail) Matching |
vacation | Vacation Auto-Reply |
vacation-seconds | Vacation with Seconds Parameter |
fcc | File Carbon Copy |
mailbox | Mailbox Existence Check |
mailboxid | Mailbox by OBJECTID |
mboxmetadata | Mailbox Metadata Access |
servermetadata | Server Metadata Access |
special-use | Special-Use Mailboxes |
imap4flags | IMAP Flags |
ihave | Conditional Extension Test |
imapsieve | IMAP Events in Sieve |
include | Script Inclusion |
regex | Regular Expression Matching |
spamtest | Spam Test |
spamtestplus | Extended Spam Test |
virustest | Virus Test |
vnd.stalwart.while | While Loop (Stalwart) |
vnd.stalwart.expressions | Expression Evaluation (Stalwart) |