Skip to content

SieveSystemInterpreter

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

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

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.

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.

Type: String?

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

Type: Duration · default: "7d"

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

Type: Boolean · default: true

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

Type: Expression · required

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

Available variables: MtaRcptToVariable.

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.

Type: UnsignedInt · default: 1048576 · min: 1

Maximum number CPU cycles a script can use

Type: UnsignedInt · default: 5 · min: 1

Maximum number of nested includes

Type: UnsignedInt · default: 5

Maximum number of outgoing messages

Type: UnsignedInt · default: 50 · min: 1

Maximum number of received headers

Type: UnsignedInt · default: 3

Maximum number of redirects

Type: UnsignedInt · default: 52428800 · min: 1

Maximum size of a variable

The SieveSystemInterpreter 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 sysSieveSystemInterpreterGet permission.

Terminal window
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"
]
}'

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.

Terminal window
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"
]
}'

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

Terminal window
stalwart-cli get SieveSystemInterpreter
Terminal window
stalwart-cli update SieveSystemInterpreter --field messageIdHostname='updated value'

A conditional expression with match rules and a default value.

Type: ExpressionMatch[]

List of conditions and their corresponding results

Type: String · required

Else condition

A single condition-result pair in an expression.

Type: String · required

If condition

Type: String · required

Then clause

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