23 lines
1.2 KiB
Markdown
23 lines
1.2 KiB
Markdown
# SMTP extensions
|
|
|
|
Bongo keeps the classic `HELO`/`MAIL`/`RCPT`/`DATA` path for old clients and
|
|
advertises ESMTP extensions after `EHLO`. The server advertises `8BITMIME` and
|
|
`SMTPUTF8` only when the corresponding configuration is enabled. `SMTPUTF8`
|
|
is accepted as a `MAIL FROM` parameter only after `EHLO`; non-ASCII envelope
|
|
addresses require it and are validated as UTF-8.
|
|
|
|
`BODY=8BITMIME` is recorded with the queued message and is sent to a remote
|
|
peer only when that peer advertises `8BITMIME`. Bongo does not implement
|
|
`BDAT`/`CHUNKING`, so `BODY=BINARYMIME` is rejected explicitly instead of
|
|
silently treating binary data as a normal `DATA` message.
|
|
|
|
Outgoing SMTP uses the peer's advertised `SIZE`, `8BITMIME` and `SMTPUTF8`
|
|
capabilities. Internationalized domains are converted to their DNS
|
|
ASCII-compatible form for MX lookup while the original UTF-8 address remains
|
|
in the SMTP envelope. External SMTP relays use libcurl and receive the same
|
|
`SMTPUTF8`/`BODY=8BITMIME` envelope parameters.
|
|
|
|
Relevant standards are [RFC 6531](https://www.rfc-editor.org/rfc/rfc6531.html),
|
|
[RFC 3030](https://www.rfc-editor.org/rfc/rfc3030.html) and
|
|
[RFC 3461](https://www.rfc-editor.org/rfc/rfc3461.html).
|