Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 27 additions & 1 deletion content/momentum/4/esmtp-listener-extensions.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,35 @@
---
lastUpdated: "03/26/2020"
lastUpdated: "10/09/2026"
title: "SMTP Extensions"
description: "Implements the receiving side of an XCLIENT capable interaction XCLIENT allows trusted senders to alter the connecting IP address and other connection level identifiers to appear to be someone they are not This is used for internally trusted re mailing More information on XCLIENT can be found at http www..."
---

### <a name="esmtp.listener.extensions.chunking"></a> CHUNKING Extension for SMTP

Advertises the CHUNKING extension defined in [RFC 3030](https://www.rfc-editor.org/rfc/rfc3030) and accepts the `BDAT` command, which a sending server uses instead of `DATA` to transmit a message as one or more chunks of announced size. Microsoft 365, Exchange and Gmail send with `BDAT` whenever the receiving server advertises CHUNKING.

CHUNKING is not advertised by default. To enable it, add it to the `SMTP_Extensions` list of a listener, `Listen` or `Peer` scope:

```
ESMTP_Listener {
Listen ":25" {
SMTP_Extensions = ( "ENHANCEDSTATUSCODES" "CHUNKING" )
}
}
```

A message received with `BDAT` is handled exactly like one received with `DATA`: policy runs once per message, the same limits apply (including `Max_Message_Size` and the idle timeout), and the message is stored, logged and delivered the same way. Momentum always delivers with `DATA`, whether or not the next hop supports CHUNKING.

* `DATA` remains available on a listener that advertises CHUNKING, but one transaction cannot mix the two. `DATA` or `RCPT TO` after a `BDAT` chunk is answered with `503`; send `RSET` to start over.

* When a chunk cannot be accepted, for example `BDAT` before `MAIL FROM` or `RCPT TO`, or after `RSET`, Momentum reads and discards the chunk before replying, as RFC 3030 requires. A chunk that takes the message over `Max_Message_Size` is read and discarded, and the message is rejected with `552 5.3.4`.

* A `BDAT` command announcing more than `Max_Message_Size` or 64 MiB, whichever is larger (2 GiB when there is no size limit), is rejected with `552` and the connection is closed without reading the chunk.

* If the last chunk does not end with a line break, Momentum adds one.

* The BINARYMIME extension, also defined in RFC 3030, is not supported. Sending servers only use `BODY=BINARYMIME` when the receiving server advertises it.

### <a name="idp2679232"></a> XCLIENT Extension for SMTP

Implements the receiving side of an XCLIENT capable interaction. XCLIENT allows trusted senders to alter the connecting IP address and other connection-level identifiers to appear to be someone they are not. This is used for internally trusted re-mailing. More information on XCLIENT can be found at [http://www.postfix.org/XCLIENT_README.html](http://www.postfix.org/XCLIENT_README.html).
Expand Down
4 changes: 2 additions & 2 deletions content/momentum/4/listeners.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
lastUpdated: "08/03/2026"
lastUpdated: "10/09/2026"
title: "Listeners"
description: "Momentum is built around a powerful event based scheduling engine A key part of that engine is responding to events that occur on inbound sockets known as listeners These listeners are configured in Momentum's configuration files The following is an example of a basic listener syntax In this example the..."
---
Expand Down Expand Up @@ -51,7 +51,7 @@ ESMTP_Listener {
Listen ":25" {
Peer "10.0.0.1" {
# options for 10.0.0.1 here
SMTP_Extensions = ( "ENHANCEDSTATUSCODES" "AUTH LOGIN" )
SMTP_Extensions = ( "ENHANCEDSTATUSCODES" "AUTH LOGIN" "CHUNKING" )
}
}
}
Expand Down
13 changes: 13 additions & 0 deletions content/momentum/changelog/5/5-4-0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
lastUpdated: "10/09/2026"
title: "Momentum 5.4.0 Changelog"
description: "This section will list all of the major changes that happened with the release of Momentum 5.4.0. Depending on installation type, all changes may not be applicable"
---

This section will list all of the major changes that happened with the release of **Momentum 5.4.0**. Depending on installation type, all changes may not be applicable

<a name="changelog.5.4.0.table"></a>

| Type | Ticket | Description |
| --- | --- | --- |
| Feature | I-1755 | ESMTP listeners can now advertise the [CHUNKING](/momentum/4/esmtp-listener-extensions#esmtp.listener.extensions.chunking) extension (RFC 3030) and accept `BDAT`, which Microsoft 365, Exchange and Gmail use instead of `DATA` when it is offered. It is off by default; add `CHUNKING` to `SMTP_Extensions` to enable it. Delivery still uses `DATA`, and BINARYMIME is not supported. |
1 change: 1 addition & 0 deletions content/momentum/changelog/5/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ name: "Momentum 5.x Changelogs"
description: "Momentum 5.x Changelogs"
---

* [Momentum 5.4.0 Changelogs](/momentum/changelog/5/5-4-0)
* [Momentum 5.3.0 Changelogs](/momentum/changelog/5/5-3-0)
* [Momentum 5.2.1 Changelogs](/momentum/changelog/5/5-2-1)
* [Momentum 5.2.0 Changelogs](/momentum/changelog/5/5-2-0)
Expand Down
2 changes: 2 additions & 0 deletions content/momentum/navigation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2003,6 +2003,8 @@
- link: /momentum/changelog/5
title: Momentum 5.x Changelog
items:
- link: /momentum/changelog/5/5-4-0
title: Momentum 5.4.0 Changelog
- link: /momentum/changelog/5/5-3-0
title: Momentum 5.3.0 Changelog
- link: /momentum/changelog/5/5-2-1
Expand Down
Loading