Skip to main content
Version: 0.16

SieveSystemInterpreter

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

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

Fields

defaultFromAddress

Type: Expression · default: {"else":"'MAILER-DAEMON@' + system('domain')"}

Default email address to use for the from field in email notifications sent from a Sieve script

Available variables: MtaRcptToVariable.

defaultFromName

Type: Expression · default: {"else":"'Automated Message'"}

Default name to use for the from field in email notifications sent from a Sieve script

Available variables: MtaRcptToVariable.

messageIdHostname

Type: String?

Override the default local hostname to use when generating a Message-Id header

duplicateExpiry

Type: Duration · default: "7d"

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

noCapabilityCheck

Type: Boolean · default: true

If enabled, language extensions can be used without being explicitly declared using the require statement

defaultReturnPath

Type: Expression · required

Default return path to use in email notifications sent from a Sieve script

Available variables: MtaRcptToVariable.

dkimSignDomain

Type: Expression · default: {"else":"system('domain')"}

Which domain's DKIM signatures to use when signing the email notifications sent from a Sieve script

Available variables: MtaRcptToVariable.

maxCpuCycles

Type: UnsignedInt · default: 1048576 · min: 1

Maximum number CPU cycles a script can use

maxNestedIncludes

Type: UnsignedInt · default: 5 · min: 1

Maximum number of nested includes

maxOutMessages

Type: UnsignedInt · default: 5

Maximum number of outgoing messages

maxReceivedHeaders

Type: UnsignedInt · default: 50 · min: 1

Maximum number of received headers

maxRedirects

Type: UnsignedInt · default: 3

Maximum number of redirects

maxVarSize

Type: UnsignedInt · default: 52428800 · min: 1

Maximum size of a variable

JMAP API

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

x:SieveSystemInterpreter/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 sysSieveSystemInterpreterGet permission.

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

x:SieveSystemInterpreter/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 sysSieveSystemInterpreterUpdate permission.

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

CLI

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

Fetch

stalwart-cli get sieve-system-interpreter

Update

stalwart-cli update sieve-system-interpreter --field description='Updated'

Nested types

Expression

A conditional expression with match rules and a default value.

match

Type: ExpressionMatch[]

List of conditions and their corresponding results

else

Type: String · required

Else condition

ExpressionMatch

A single condition-result pair in an expression.

if

Type: String · required

If condition

then

Type: String · required

Then clause

Expression references

The following expression contexts are used by fields on this page: