Commit Graph

527 Commits

Author SHA1 Message Date
Mike Hillyer a13cb785ae Add mention of contributors to the credits page in the documentation. 2023-09-14 15:54:31 -04:00
Wez Furlong cb1f64fe9d docs: add internal rust API docs to reference section 2023-09-14 10:18:22 -07:00
Wez Furlong 18223c7799 docs: add note about http_auth 2023-09-12 12:59:40 -07:00
Wez Furlong dfe3562a7d smtp_server: fix SMTP AUTH response
When the client used the (inefficient!) multi-stage variant
of AUTH PLAIN, we didn't send the 334 response, so both
parties sat waiting for each other and eventually timed out.
2023-09-12 10:06:10 -07:00
Wez Furlong 1a5980066a docs: changelog for #81 2023-09-08 06:53:41 -07:00
Nathalie Cai 1aca4ae3a8 add dkim canonicalization to dkim helper 2023-09-08 06:51:04 -07:00
Wez Furlong d3b4a191af MTA-STS: expose to path config, implement in smtp_dispatcher
This should be sufficient to enable this feature!

refs: https://github.com/KumoCorp/kumomta/issues/7
2023-08-31 08:54:12 -07:00
Nathalie Cai 6bb9ac387c add mx_list_ip_map to smtp protocole for tls connection (#80)
add mx_list_ip_map to smtp protocole for tls connection

Co-authored-by: Nathalie Cai <ncai@chapsvision.com>
2023-08-30 08:29:18 -07:00
Wez Furlong bbfa1122c4 docs: unconditionally install social plugin deps
mkdocs now refuses to start without them installed, even when
this plugin is disabled.
2023-08-30 08:26:08 -07:00
Wez Furlong f536657e08 allow optional spaces after MAIL FROM:, RCPT TO:
closes: https://github.com/KumoCorp/kumomta/issues/76
2023-08-30 08:18:39 -07:00
Wez Furlong 5d9d32e7ed Automated doc formatting fix 2023-08-30 00:25:15 +00:00
Wez Furlong 884f8b0171 docs for msg:check_fix_conformance
refs: #17
refs: #24
refs: #26
2023-08-29 17:08:16 -07:00
Wez Furlong dafbf02e6b http injection: rebuild full-content injections
This makes it super easy to template the whole message; it will be
parsed and rebuilt with appropriate transfer encoding and wrapping.

Fixup an issue where some of the header fields in the builder variant
of the API were not templated or added to the message.

Skip adding transfer encoding header when it is not needed.
2023-08-29 11:00:01 -07:00
Wez Furlong 0acef1959a smtp_server: add line_length_hard_limit parameter
refs: https://github.com/KumoCorp/kumomta/issues/25
2023-08-29 06:45:08 -07:00
Wez Furlong 88eca8b838 Add invalid CRLF conformance option to SMTP listener
There's just one option for the whole of the message payload; we don't
distinguish between headers and body for this.

closes: https://github.com/KumoCorp/kumomta/issues/23
closes: https://github.com/KumoCorp/kumomta/issues/22
2023-08-28 18:38:19 -07:00
Mike Hillyer 48ab6a3231 Update changelog with reference to Traffic Shaping Automation 2023-08-25 12:31:27 -04:00
Wez Furlong 24909f4cde docs: update for 2023.08.22-4d895015 release 2023-08-25 08:38:09 -07:00
Wez Furlong 4d89501564 update trust-dns-resolver to 0.23
With the mail-auth dep removed, we can now update this dep.
2023-08-22 17:40:14 -07:00
Wez Furlong 05e52d4ce6 message: switch ed25519 dkim signing to cfdkim
With the upgraded ed25519-dalek crate, it's now possible to
pass in either DER or PEM encoded PKCS8 signing keys, which
makes it feasible to remove the mail-auth dep from this crate.

That in turns reduces the amount of code in here, which is nice.
2023-08-22 17:27:06 -07:00
Wez Furlong 34f116f0eb smtp_server: fixup rejection handling in smtp_server_message_received
Two issues:

* A kumo.reject(421,...) wasn't guaranteed to terminate the session,
  so make it do that.

* A non-421 kumo.reject would prevent the current candidate message from
  being queued, but could result in a spurious additional 250 ok
  response.

  Refactor the data phase processing so that we first make a pass
  over the messages to allow allow of them to be assessed by the
  event before we commit to logging and injecting any of them.

  Since the spool system is not (and cannot be made to be)
  transactional across multiple messages, there is still a possibility
  that a failure to spool at this stage will result in the
  previously accepted messages from that batch being accepted,
  event though we will then respond to the client with a failure
  code.

closes: https://github.com/KumoCorp/kumomta/issues/79
2023-08-22 15:55:03 -07:00
Wez Furlong 74f3ebd26e allow configuring DNS resolver parameters 2023-08-22 11:32:23 -07:00
Tom Mairs 519f508139 fix link 2023-08-21 17:14:03 +00:00
Tom Mairs 502ae37e44 fix curl sample 2023-08-21 16:43:58 +00:00
Wez Furlong 71924490d3 message: add set_recipient and set_sender methods 2023-08-15 14:51:35 -07:00
Wez Furlong 55770052a5 add kumo.encode module
This provides a variety of encode/decode functions for things
like base64 and base32 encoding
2023-08-12 08:42:44 -07:00
Wez Furlong d35bffc80d Automated doc formatting fix 2023-08-12 13:55:14 +00:00
Wez Furlong 99fcfbc64e kumod: refresh queue_config periodically
This commit causes the scheduled queue maintainer to refresh
the queue config by calling the get_queue_config event approximately
every minute while the queue is alive.

In addition, we now thread the routing_domain through to get_queue_config
2023-08-12 06:22:54 -07:00
Wez Furlong d8a6bceef0 add kumo.digest lua module
Compute hashes
2023-08-11 21:44:40 -07:00
Wez Furlong e042e81de9 kumo.dns: add lookup_addr function
Resolves a hostname to its v4 and v6 addresses and returns them.

Fixes up a typo in the docs for lookup_mx that incorrectly
showed it as resolve_mx.
2023-08-11 16:51:54 -07:00
Wez Furlong 9d1ca9dc11 routing.md: update to show new smart hosting options 2023-08-11 11:17:02 -07:00
Wez Furlong dc78142c35 docs: operation: tidy up formatting, show more kcli usage 2023-08-11 10:36:32 -07:00
Wez Furlong 55237b94ef spool.md: tweak layout, make it obvious that we rec. RocksDB 2023-08-11 09:58:47 -07:00
Wez Furlong 811b64c1ff example.md: fixup example
Needs to pull in the utils to use merge_into
2023-08-11 09:55:13 -07:00
Wez Furlong 00f2a95335 dkim.md: fixup links, tidy up some formatting, wordwrap 2023-08-11 09:53:08 -07:00
Wez Furlong 6545e8c0a5 queuemanagement.md: fixup examples, add cross links 2023-08-11 09:45:47 -07:00
Wez Furlong 2fc79766f2 sendingips.md: rearrange contents for the common case
We had a user get tripped up by the incorrect example on this page.
I think they probably should have been using the helper, but the
way this page was constructed, it was easy to keep reading past
the bit about the helper and get bogged down by the lua examples.

Rearrange this page to try to avoid that.
2023-08-11 09:36:18 -07:00
Wez Furlong a8ea458ced sendingips.md: fix incorrect pool lua example
I've seen this trip up at least two people so far.

While we're in there, update the example to show how to memoize and make
it both easier to write and more efficient at runtime.
2023-08-11 09:30:31 -07:00
Wez Furlong d0add809ae httplisteners.md: fix typo, fixup links, wordwrap 2023-08-11 09:18:47 -07:00
Wez Furlong 019c3df08a fbl.md: update for more modern listener domain syntax 2023-08-11 09:16:01 -07:00
Wez Furlong 3fd0c04add docs: wordwrap fbl.md 2023-08-11 09:12:47 -07:00
Wez Furlong 1aff64663e docs: bounce.md: fixup for listener domains changes
We were still showing the old, removed, inline listener domain
syntax from an earlier release.

Fix that up.
2023-08-11 09:07:57 -07:00
Wez Furlong 23e11b4f99 docs: wordwrap bounce.md
Make it easier to read in my terminal!
2023-08-11 09:00:50 -07:00
Wez Furlong 836d8f8325 docs: fix toml syntax in listener_domains example 2023-08-11 08:56:19 -07:00
Wez Furlong 685bb581ba docs: improve wording and link in changelog for listener domains policy helper 2023-08-11 08:54:33 -07:00
Wez Furlong a08b780ab3 listener_domains.lua: add relay_from_authz option
This allows listing out authorization identities.
If the incoming client is authorized to act as one of the listed
`relay_from_authz` authorization identities, then the incoming
session will be added to the relay_from CIDR for the scope of
that connected session, and the result is that they will be allowed
to relay from the associated domain.

This is useful if you want to give a tenant SMTP auth credentials
but only want to allow them to send from the domain(s) that
they are permitted to send as/from.
2023-08-11 08:31:15 -07:00
Wez Furlong f994969887 docs: correct arguments to get_listener_domain 2023-08-11 07:01:20 -07:00
Wez Furlong ad19fb717f docs: userguide: clarify and cross-link 2023-08-11 06:59:21 -07:00
Wez Furlong 8e0526ec1b docs: fix typo 2023-08-11 06:51:44 -07:00
Wez Furlong 8205682202 docs: fix typo in toc 2023-08-11 06:47:46 -07:00
Wez Furlong 29ce975970 kcli: add routing_domain support to bounce API and commands 2023-08-10 22:02:07 -07:00