Today, remoteDelivery is lightly tested and error corner cases are not tested.
Several bugs are already known cf
JAMES-2097 JAMES-2442 is an attempt to write such tests but some of these tests require not-yet available tooling.
In order to write such tests we need :
- 1. a tcp mock server (replying smtp error codes)
- 2. listening on port 25
- 3. on it's own IP
The FakeSmtp docker approach we had so far covers 2 & 3. We did not find yet a good solution for 1.
What we had in mind is:
- Writing our own SMTP mock server (POC available here: https://github.com/linagora/james-project/pull/2545
- Introduce a JSON format corresponding to the behavior of this Mock server
- load this via HTTP to allow remote setup
- exposes delivered emails over HTTP to allow writing assertions
- dockerizing this.
This will allow writing the tests we are missing.
|POJO for Mock Smtp server behavior, receive email||Closed|
|Implementing a MockSmtpServer||Closed|
|MockSMTP server behaviors setup over HTTP||Closed|
|dockerize the MockSmtpServer||Closed|
|Http route for getting all mails stored in the MockSmtpServer||Resolved|