Commit Graph

160 Commits

Author SHA1 Message Date
dependabot[bot] df6c9d777d chore(deps): Bump log from 0.4.30 to 0.4.33 (#194) 2026-07-04 15:02:06 +09:00
dependabot[bot] 88e2124d59 chore(deps): Bump hyper from 1.9.0 to 1.10.1 (#197)
Bumps [hyper](https://github.com/hyperium/hyper) from 1.9.0 to 1.10.1.
- [Release notes](https://github.com/hyperium/hyper/releases)
- [Changelog](https://github.com/hyperium/hyper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hyperium/hyper/compare/v1.9.0...v1.10.1)

---
updated-dependencies:
- dependency-name: hyper
  dependency-version: 1.10.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-02 08:29:20 +02:00
Jagoda Estera Ślązak 5717940ac1 chore(release): prepare for 0.7.4 (#193)
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-07-01 15:15:41 +02:00
l ed5dfbe0ff test: place #[tokio::test] after rstest case macros (#192)
Otherwise only the first case is built.
2026-07-01 14:51:37 +02:00
dependabot[bot] 5cdae22d31 chore(deps): Bump dtolnay/rust-toolchain (#188)
Bumps [dtolnay/rust-toolchain](https://github.com/dtolnay/rust-toolchain) from 3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 to fa04a1451ff1842e2626ccb99004d0195b455a88.
- [Release notes](https://github.com/dtolnay/rust-toolchain/releases)
- [Commits](https://github.com/dtolnay/rust-toolchain/compare/3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9...fa04a1451ff1842e2626ccb99004d0195b455a88)

---
updated-dependencies:
- dependency-name: dtolnay/rust-toolchain
  dependency-version: 67ef31d5b988238dd797d409d6f9574278e20537
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-01 13:48:43 +02:00
dependabot[bot] d00d2b870b chore(deps): Bump taiki-e/install-action from 2.81.10 to 2.82.2 (#187)
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.81.10 to 2.82.2.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/install-action/compare/7a79fe8c3a13344501c80d99cae481c1c9085912...9e1e5806d4a4822de933115878265be9aaa786d9)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.82.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-30 19:01:23 +02:00
Jagoda Estera Ślązak 7f14693b31 feat(logs): Log incoming mailer-daemon message sources (#191)
Logs mailer-daemon messages separately from other unencrypted mails.

Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-06-30 19:00:13 +02:00
dependabot[bot] 0fce0a2191 chore(deps): Bump actions/checkout from 6.0.3 to 7.0.0 (#186)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/df4cb1c069e1874edd31b4311f1884172cec0e10...9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-30 18:10:18 +02:00
Jagoda Estera Ślązak 4d7bcf51b7 chore: update filtermail.mtail (#190)
Logs for filtermail-transport changed in v0.7.2+.

Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-06-30 12:05:21 +02:00
Jagoda Estera Ślązak 222bf36712 chore(release): prepare for 0.7.3 (#189)
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-06-27 17:13:53 +02:00
Jagoda Estera Ślązak d5ac67ecff feat(transport): Worker eviction (#185)
Adds max worker capacity of 500 to the worker pool,
and an automatic shutdown of idle workers.
Messages that would cause the capacity to be exceeded,
are deferred.

Additionally, ensures that the same worker
is not spawned by two tasks at the same time.

Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-06-27 10:54:38 +02:00
Jagoda Estera Ślązak ac9df36801 chore(release): prepare for 0.7.2 (#184) 2026-06-26 21:04:42 +09:00
Jagoda Ślązak 03ca4a010b docs(readme): Update Transport mode doc
Add information about workers,
and synchronization of deliveries.

Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-06-26 11:38:25 +02:00
Jagoda Ślązak db86cfc6ed refactor: Implement Display for AddressDomain
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-06-26 11:11:30 +02:00
Jagoda Ślązak c7452526fa test: Test filtermail-transport
Adds filtermail-transport tests and
a test setup for recording SMTP transactions.

Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-06-26 11:11:20 +02:00
Jagoda Ślązak 7ea7904ea0 feat(transport): Destination worker pool
Implements a per-destination worker pool,
so that connections to the same destination
are not parallelized, but instead queued.
If a queue is full, new messages are immediately
deferred, before mail data is sent from postfix.

Closes: #141

Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-06-26 11:07:34 +02:00
dependabot[bot] 7d0db2c46e chore(deps): Bump taiki-e/install-action from 2.81.6 to 2.81.10 (#183)
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.81.6 to 2.81.10.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/install-action/compare/59012be0884e296ca2da49b530610e72c49039ad...7a79fe8c3a13344501c80d99cae481c1c9085912)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.81.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-22 18:29:12 +02:00
dependabot[bot] b36856a383 chore(deps): Bump taiki-e/install-action from 2.79.14 to 2.81.6 (#182)
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.79.14 to 2.81.6.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/install-action/compare/873c7452cadb7c034694a1282227095d93fbdf92...59012be0884e296ca2da49b530610e72c49039ad)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.81.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-15 13:42:27 +02:00
dependabot[bot] a66887b778 chore(deps): Bump actions/checkout from 6.0.2 to 6.0.3 (#181)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/de0fac2e4500dabe0009e67214ff5f5447ce83dd...df4cb1c069e1874edd31b4311f1884172cec0e10)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-15 13:41:54 +02:00
Jagoda Estera Ślązak 488bbcb182 docs(readme): Disable colors in mermaid diagrams (#180)
Previously used colors caused
diagrams to be unreadable in
light mode.
Removing styling completely,
as this was redundant anyway.

Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-06-10 22:31:53 +02:00
Jagoda Estera Ślązak 81aac3cb77 chore(release): prepare for 0.7.1 (#179)
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-06-09 13:45:03 +02:00
Jagoda Estera Ślązak d3f5412420 feat: switch to aws-lc-rs cryptography provider (#178)
Switches crypto provider to keep
chatmail codebase consistent,
analogous to https://github.com/chatmail/core/pull/8313

Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-06-06 15:28:53 +02:00
dependabot[bot] 73b684f90c chore(deps): Bump log from 0.4.29 to 0.4.30 (#173)
Bumps [log](https://github.com/rust-lang/log) from 0.4.29 to 0.4.30.
- [Release notes](https://github.com/rust-lang/log/releases)
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/log/compare/0.4.29...0.4.30)

---
updated-dependencies:
- dependency-name: log
  dependency-version: 0.4.30
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-06 10:20:04 +02:00
l fb5a25939c fix: ignore CNAME records when resolving TXT records (#177) 2026-06-06 16:55:18 +09:00
dependabot[bot] 939e5367c9 chore(deps): Bump taiki-e/install-action from 2.79.6 to 2.79.14
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.79.6 to 2.79.14.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/install-action/compare/f48d2f8ba2b452934c948b7be1a768079c3632ff...873c7452cadb7c034694a1282227095d93fbdf92)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.79.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-05 22:51:57 +00:00
dependabot[bot] b0214a71d7 chore(deps): Bump memchr from 2.8.0 to 2.8.1
Bumps [memchr](https://github.com/BurntSushi/memchr) from 2.8.0 to 2.8.1.
- [Commits](https://github.com/BurntSushi/memchr/compare/2.8.0...2.8.1)

---
updated-dependencies:
- dependency-name: memchr
  dependency-version: 2.8.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-05 22:51:26 +00:00
dependabot[bot] 2538caa1b2 chore(deps): Bump lru from 0.17.0 to 0.18.0 (#171)
Bumps [lru](https://github.com/jeromefroe/lru-rs) from 0.17.0 to 0.18.0.
- [Changelog](https://github.com/jeromefroe/lru-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jeromefroe/lru-rs/compare/0.17.0...0.18.0)

---
updated-dependencies:
- dependency-name: lru
  dependency-version: 0.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-03 14:57:12 +02:00
dependabot[bot] f82f34d054 chore(deps): Bump tokio from 1.52.1 to 1.52.3 (#172)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.52.1 to 1.52.3.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.52.1...tokio-1.52.3)

---
updated-dependencies:
- dependency-name: tokio
  dependency-version: 1.52.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-03 14:56:45 +02:00
Andrey 0xdc09 8a60245183 fix(resolver): disable negative caching (#170) 2026-06-02 12:04:32 +02:00
j4n 6d6517f8f3 chore: add filtermail.mtail so filtermail failures can be monitored (#169)
Example Prometheus queries:

Outbound errors by reason:
  sum by (reason) (rate(filtermail_transport_error_total[5m]))

filtermail-incoming drops by reason:
  sum by (reason) (rate(filtermail_inbound_drop_total[5m]))
2026-06-01 21:51:34 +02:00
Jagoda Estera Ślązak e9a63222e6 fix(smtp-server): Correct error when EOF while reading DATA (#168)
Log
`Unexpected EoF while receiving DATA!`
instead of
`Malformed DATA line without CRLF ending!`

Fixes: #165

Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-06-01 16:27:30 +02:00
dependabot[bot] 893ceab107 chore(deps): Bump taiki-e/install-action from 2.75.28 to 2.79.6 (#164)
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.75.28 to 2.79.6.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/install-action/compare/51cd0b8c0499559d9a4d75c0f5c67bec3a894ec8...f48d2f8ba2b452934c948b7be1a768079c3632ff)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.79.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-01 09:51:57 +02:00
l a6361a2194 fix: switch ratelimiter to MonotonicClock (#167)
There is a known bug that `quanta` clock
used by default sometimes jumps back:
<https://github.com/metrics-rs/quanta/issues/111>.
This results in `governor` rate limiter
incorrectly rejecting the messages
even when less than the configured burst size
has been sent.

Switched to standard monotonic clock
which does not have this problem.
I tested that this fixed the problem for me,
chatmail relay test `test_exceed_rate_limit`
stopped failing randomly.

Fixes <https://github.com/chatmail/filtermail/issues/166>
2026-06-01 09:51:33 +02:00
Jagoda Estera Ślązak febfb90510 chore(release): prepare for 0.7.0 (#163)
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-05-26 06:56:00 +02:00
Jagoda Estera Ślązak c84a96ac78 docs(readme): Remove docs for options removed in 664ad57 (#162) 2026-05-26 02:25:51 +09:00
link2xt 847e19546b fix: do not crash if accepting new connection fails
If we run out of file descriptors, we cannot do anything
to accept queued connections, so at least don't crash the process.
Fixes <https://github.com/chatmail/filtermail/issues/139>.
2026-05-14 20:59:59 +00:00
holger krekel 664ad571b6 feat!: remove passthrough options that allowed unencrypted mail to pass
see https://github.com/chatmail/relay/pull/970/ for the related removal of chatmail.ini options
2026-05-14 20:59:13 +02:00
Jagoda Estera Ślązak 91d09ab370 chore(release): prepare for 0.6.6 (#156)
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-05-12 13:02:17 +02:00
holger krekel e2be5dc92d ci: run cmlxc tests in all classic/classic-ipv4/madmail combinations 2026-05-12 12:46:20 +02:00
Jagoda Estera Ślązak d74e5b85b3 feat: Improved SMTP error responses (#147)
Fixes: #140

Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-05-12 12:37:02 +02:00
Jagoda Estera Ślązak b7a213ff1b ci: Remove mac and windows from matrix tests (#154)
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-05-12 12:20:25 +02:00
holger krekel 3896044f36 fix: return HTTP 200 because madmail expects it, and make sure https is immediately retried when SMTP fails (#153) 2026-05-12 12:13:00 +02:00
Jagoda Estera Ślązak e26cca0260 chore(release): prepare for 0.6.5 (#152)
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-05-12 09:52:13 +02:00
dependabot[bot] 272744115f chore(deps): Bump taiki-e/install-action from 2.75.22 to 2.75.28 (#148)
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.75.22 to 2.75.28.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/install-action/compare/cf525cb33f51aca27cd6fa02034117ab963ff9f1...51cd0b8c0499559d9a4d75c0f5c67bec3a894ec8)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.75.28
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 07:01:30 +02:00
l a65e7a1490 fix: Validate mail data (#150)
Do not allow bare CR and LF etc.
2026-05-12 07:00:21 +02:00
holger krekel 36921dd29f fix: advertise 8BITMIME to prevent conversion after DKIM signing (#149)
for bounces postfix sets Content-Transfer-Encoding: 8bit
which causes a quoted-printable conversion when filtermail SMTP does not offer 8BITMIME,
which in turn breaks DKIM verification.
2026-05-12 06:56:11 +02:00
Jagoda Estera Ślązak 5295d175d6 perf(smtp-client): Use pipelining if server advertises support (#146)
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-05-07 15:05:51 +02:00
Jagoda Estera Ślązak 10119033a3 fix(smtp-client): Handle 421 on reused connection (#145)
If a reused connection was closed
in the meantime, open a new connection,
instead of failing immediately.

Fixes #143

Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
2026-05-07 14:20:49 +02:00
Jagoda Estera Ślązak d29cbafda4 chore(deps): Upgrade hickory-resolver (#138) 2026-05-05 02:17:21 +02:00
dependabot[bot] bc769e0d2a chore(deps): Bump webpki-roots from 1.0.6 to 1.0.7 (#136)
Bumps [webpki-roots](https://github.com/rustls/webpki-roots) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/rustls/webpki-roots/releases)
- [Commits](https://github.com/rustls/webpki-roots/compare/v/1.0.6...v/1.0.7)

---
updated-dependencies:
- dependency-name: webpki-roots
  dependency-version: 1.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-04 12:54:28 +02:00