@bumail/smtp 0.11.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/roadmap.md +16 -1
- package/package.json +3 -3
package/docs/roadmap.md
CHANGED
|
@@ -32,31 +32,46 @@ Nothing yet.
|
|
|
32
32
|
|
|
33
33
|
## Shipped
|
|
34
34
|
|
|
35
|
-
###
|
|
35
|
+
### 0.11.0
|
|
36
36
|
|
|
37
37
|
- **UTF-8 `ORCPT` (RFC 6533)**: the server decodes `ORCPT=utf-8;…`
|
|
38
38
|
(`utf-8-addr-xtext` with `\x{HEX}`, and raw UTF-8 under `SMTPUTF8`); the
|
|
39
39
|
client sends a
|
|
40
40
|
`utf-8` `ORCPT` in the form the transaction allows instead of leaving it
|
|
41
41
|
out. The reports built from it, in `@bumail/queue`, are not part of this.
|
|
42
|
+
|
|
43
|
+
### 0.10.0
|
|
44
|
+
|
|
42
45
|
- **DSN requests (RFC 3461)**: the server accepts `RET`, `ENVID`, `NOTIFY`
|
|
43
46
|
and `ORCPT` and hands them to the app, and always lists `DSN` in its
|
|
44
47
|
`EHLO` reply, so these parameters are no longer refused with `555 5.5.4`
|
|
45
48
|
(a client that relied on that refusal has to adapt). The client sends
|
|
46
49
|
them when the next hop lists `DSN`, and its result reports `dsnOffered`.
|
|
50
|
+
|
|
51
|
+
### 0.9.0
|
|
52
|
+
|
|
47
53
|
- **The envelope on an `afterData` error**: `SmtpError.accepted` and
|
|
48
54
|
`rejected` list the recipients the server took and refused at `RCPT TO`
|
|
49
55
|
when the session failed after the final dot.
|
|
56
|
+
|
|
57
|
+
### 0.8.0
|
|
58
|
+
|
|
50
59
|
- **A message holding a NUL byte is refused**: the server reads it to its
|
|
51
60
|
end, then answers `554 5.6.0 Message holds a NUL byte`, and the content
|
|
52
61
|
stream errors with `SmtpError` code `NUL_BYTE`, so `onData` never takes
|
|
53
62
|
it.
|
|
63
|
+
|
|
64
|
+
### 0.6.0
|
|
65
|
+
|
|
54
66
|
- **A renewed certificate without a restart**, `server.setTls({ key, cert
|
|
55
67
|
})`: the next STARTTLS upgrade and the next implicit TLS connection use
|
|
56
68
|
it, the sessions open keep their TLS, and a pair that cannot be used
|
|
57
69
|
throws `INVALID_OPTION` and leaves the old one. Implicit TLS without a
|
|
58
70
|
proxy now listens in clear and upgrades each socket as it opens, since
|
|
59
71
|
a native Bun TLS listener cannot swap its certificate.
|
|
72
|
+
|
|
73
|
+
### 0.5.0
|
|
74
|
+
|
|
60
75
|
- **Behind a TCP proxy, the client's own address**, with `proxyProtocol:
|
|
61
76
|
{ trusted: [...] }`: the server reads the PROXY protocol, versions 1 and
|
|
62
77
|
2, from the proxies listed — a Traefik TCP router, HAProxy — so
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bumail/smtp",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "An SMTP server on Bun.listen — RFC 5321 with PIPELINING, SIZE, 8BITMIME, SMTPUTF8, STARTTLS and AUTH after TLS, policy hooks, and no open relay — and a client that delivers a message to a smarthost or by MX",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@bumail/auth": "^0.5.0",
|
|
51
|
-
"@bumail/dns": "^0.2.
|
|
52
|
-
"@bumail/store": "^0.6.
|
|
51
|
+
"@bumail/dns": "^0.2.2",
|
|
52
|
+
"@bumail/store": "^0.6.1",
|
|
53
53
|
"@types/bun": "^1.4.2"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|