@beignet/provider-mail-smtp 0.0.32 → 0.0.33
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/CHANGELOG.md +8 -0
- package/README.md +7 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @beignet/provider-mail-smtp
|
|
2
2
|
|
|
3
|
+
## 0.0.33
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 92af951: Document and test the provider resilience baseline: mail providers fail fast
|
|
8
|
+
without provider-owned retries, while S3 delegates bounded retries to the AWS
|
|
9
|
+
SDK or caller-owned injected clients.
|
|
10
|
+
|
|
3
11
|
## 0.0.32
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -121,9 +121,10 @@ When `ctx.ports.devtools` is installed, this provider records `mail.send`,
|
|
|
121
121
|
|
|
122
122
|
## Failure and retry semantics
|
|
123
123
|
|
|
124
|
-
The provider fails fast and does not retry.
|
|
125
|
-
|
|
126
|
-
|
|
124
|
+
The provider fails fast and does not retry. Each `send(...)` call makes one
|
|
125
|
+
Nodemailer `sendMail(...)` call, even for transient network errors or
|
|
126
|
+
provider-side failures. Mail delivery is not idempotent: a timed-out send may
|
|
127
|
+
still have been delivered, so a blind provider retry risks duplicate emails.
|
|
127
128
|
|
|
128
129
|
Delivery failures throw `MailDeliveryError` from `@beignet/core/mail` with the
|
|
129
130
|
provider name, the recipient count, and the original SMTP error preserved as
|
|
@@ -135,8 +136,9 @@ failing the first send. Startup configuration problems also throw during
|
|
|
135
136
|
provider setup.
|
|
136
137
|
|
|
137
138
|
When mail needs retries, dispatch it from a job or an outbox-backed listener
|
|
138
|
-
and own idempotency there
|
|
139
|
-
event before
|
|
139
|
+
and own idempotency there. The job or outbox row should choose attempts and
|
|
140
|
+
delay, and the application should record one delivery per business event before
|
|
141
|
+
sending.
|
|
140
142
|
|
|
141
143
|
## Local and tests
|
|
142
144
|
|