Skip to main content
Version: 0.16

MtaExtensions

Configures SMTP protocol extensions offered to clients.

This object can be configured from the WebUI under Settings › MTA › Session › Extensions

Fields

chunking

Type: Expression · default: {"else":"true"}

Enables chunking (RFC 1830), an extension that allows large messages to be transferred in chunks which may reduce the load on the network and server.

Available variables: MtaMailFromVariable.

deliverBy

Type: Expression · default: {"else":"false","match":[{"if":"!is_empty(authenticated_as)","then":"15d"}]}

Specifies the maximum delivery time for a message using the DELIVERBY (RFC 2852) extension, which allows the sender to request a specific delivery time for a message

Available variables: MtaMailFromVariable.

dsn

Type: Expression · default: {"else":"false","match":[{"if":"!is_empty(authenticated_as)","then":"true"}]}

Enables delivery status notifications (RFC 3461), which allows the sender to request a delivery status notification (DSN) from the recipient's mail server

Available variables: MtaMailFromVariable.

expn

Type: Expression · default: {"else":"false","match":[{"if":"!is_empty(authenticated_as)","then":"true"}]}

Specifies whether to enable the EXPN command, which allows the sender to request the membership of a mailing list. It is recommended to disable this command to prevent spammers from harvesting email addresses

Available variables: MtaMailFromVariable.

futureRelease

Type: Expression · default: {"else":"false","match":[{"if":"!is_empty(authenticated_as)","then":"7d"}]}

Specifies the maximum time that a message can be held for delivery using the FUTURERELEASE (RFC 4865) extension

Available variables: MtaMailFromVariable.

mtPriority

Type: Expression · default: {"else":"false","match":[{"if":"!is_empty(authenticated_as)","then":"mixer"}]}

Specifies the priority assignment policy to advertise on the MT-PRIORITY (RFC 6710) extension, which allows the sender to specify a priority for a message. Available policies are mixer, stanag4406 and nsep, or false to disable this extension

Available variables: MtaMailFromVariable.

Available constants: MtaPriorityConstant.

noSoliciting

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

Specifies the text to include in the NOSOLICITING (RFC 3865) message, which indicates that the server does not accept unsolicited commercial email (UCE or spam)

Available variables: MtaMailFromVariable.

pipelining

Type: Expression · default: {"else":"true"}

Enables SMTP pipelining (RFC 2920), which enables multiple commands to be sent in a single request to speed up communication between the client and server

Available variables: MtaMailFromVariable.

requireTls

Type: Expression · default: {"else":"true"}

Enables require TLS (RFC 8689), an extension that allows clients to require TLS encryption for the SMTP session

Available variables: MtaMailFromVariable.

vrfy

Type: Expression · default: {"else":"false","match":[{"if":"!is_empty(authenticated_as)","then":"true"}]}

Specifies whether to enable the VRFY command, which allows the sender to verify the existence of a mailbox. It is recommended to disable this command to prevent spammers from harvesting email addresses

Available variables: MtaMailFromVariable.

JMAP API

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

x:MtaExtensions/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 sysMtaExtensionsGet permission.

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

x:MtaExtensions/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 sysMtaExtensionsUpdate permission.

curl -X POST https://mail.example.com/api \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"methodCalls": [
[
"x:MtaExtensions/set",
{
"update": {
"singleton": {
"chunking": {
"else": "true"
}
}
}
},
"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 mta-extensions

Update

stalwart-cli update mta-extensions --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: