Wez Furlong
3e97cea1f6
docs build: simplify dep logic a little
2023-03-07 11:31:01 -07:00
Wez Furlong
258d9f8f64
docs: add a bit of an explanation about queueing
2023-03-07 08:27:44 -07:00
Wez Furlong
a05724e40c
auto-format generate-toc.py too
2023-03-07 07:36:50 -07:00
Wez Furlong
96350031dc
add index pages for redis and sqlite
2023-03-06 20:19:16 -07:00
Wez Furlong
7054fb31c9
switch to using human time for the queue related time intervals
2023-03-06 19:33:05 -07:00
Wez Furlong
5bb9363aaa
docs: format
2023-03-06 19:16:35 -07:00
Wez Furlong
2ec5f49ea0
docs: fixup dkim page
...
mdbook's mermaid support doesn't like the embedded titles
2023-03-06 19:15:13 -07:00
Wez Furlong
6dfbaf1113
docs: tweak user guide
2023-03-06 19:09:05 -07:00
Wez Furlong
00c253a9dd
add maildir support
...
This is to facilitate end-to-end testing to validate that the
right bits come out at the end.
2023-03-06 19:05:49 -07:00
Tom Mairs
fad4786ac9
fixing dkim diagram
2023-03-07 00:41:30 +00:00
Tom Mairs
63f9aea845
fixing dkim diagram
2023-03-07 00:38:25 +00:00
Tom Mairs
8186354766
fix relative links in files
2023-03-07 00:23:04 +00:00
Tom Mairs
295a33dce3
bulk updated to user guide
2023-03-07 00:11:12 +00:00
Wez Furlong
cd5f7efbb0
docs: link to ARF rfc, add note about extensions:
2023-03-05 20:37:45 -07:00
Wez Furlong
c6292440d0
docs: fix a typo and add a missing paragraph
2023-03-05 20:34:29 -07:00
Wez Furlong
1bfa3a42af
Add custom logging
2023-03-05 20:29:14 -07:00
Wez Furlong
a0e73b72b1
allow logging selected meta and headers to the logs
2023-03-05 15:58:19 -07:00
Wez Furlong
1ac929e6b2
add max_segment_duration option to the logger
2023-03-05 15:25:08 -07:00
Wez Furlong
0ca585bd5a
Optionally use redis for throttles
2023-03-05 10:39:56 -07:00
Wez Furlong
ca78839a59
docs: add missing require
2023-03-05 09:59:06 -07:00
Wez Furlong
eaaddbb6b6
add redis client
2023-03-05 09:57:03 -07:00
Wez Furlong
2cf3d2387c
add sqlite data access
...
A bit of a big commit because I wanted sqlite queries to run
async and there isn't a sane way to tell in mlua whether a
given context is safe to yield for an await, which meant making
every case where we call into lua be fully async.
This adds a simple but powerful binding to sqlite that performs
its IO in a blocking tokio thread pool, and returns the results
back to lua.
There is no implicit caching of queries, and no implicit connection
pooling.
2023-03-04 18:07:31 -07:00
Wez Furlong
c184214253
allow loading TLS key+cert from hashicorp vault
...
refactor to allow reusing the same key loader logic for dkim, smtp
and http.
2023-03-04 11:01:35 -07:00
Wez Furlong
38e60f9274
rename vault object fields to have vault_ prefix
...
This disambiguates for future alternative credential storage
systems.
2023-03-04 10:29:25 -07:00
Wez Furlong
c93c9af2eb
refine default list of meta fields for supplemental trace header
2023-03-04 10:21:45 -07:00
Wez Furlong
52f7ab6150
add prohibited_hosts and skip_hosts for outbound resolving
...
While in that part of the code, handle null MX destination domains
(such as `example.com) more nicely.
2023-03-04 10:09:17 -07:00
Wez Furlong
7eb33d2ca5
make smtp server read timeout configurable
...
client_timeout is the config, and it defaults to 1m
2023-03-04 07:52:53 -07:00
Wez Furlong
6204642270
add trace headers configuration and link to ARF parsing
2023-03-04 07:22:02 -07:00
Wez Furlong
61f974d066
adjust listener domains config to support more relaying options
...
a domain can now specify:
* relay_from: mail from the domain is allowed to relay anywhere
if the peer matches the cidr list
* relay_to: mail from anywhere is allowed to relay to the domain
* log_arf: ARF FBL reports are allowed to be received and their
contents will be logged
* log_oob: oob bounces are allowed to be received and their
contents will be logged
2023-03-03 22:53:56 -07:00
Wez Furlong
03c3484cd7
rename fbl -> arf
...
The spec is talking about ARF, so let's use that terminology
2023-03-03 14:34:06 -07:00
Wez Furlong
523492da26
docs: fixup dkim signing
2023-03-03 10:56:22 -07:00
Wez Furlong
aa460f52d0
docs: fix typo
2023-03-03 10:34:23 -07:00
Wez Furlong
7d76b3d9d7
add support for retrieving signing keys from hashicorp vault
2023-03-03 10:32:16 -07:00
Wez Furlong
ef7fa59355
synthesize OOB log records from OOB reports
...
* When logging the reception of a message, if we can parse it
as an rfc3464 oob report, then synthesize OOB records for
each recipient
* Add config to allow relaying for domains for which bounces
are received, so that we can accept their message content.
* If the domain config allows bounces but not relaying, then
the message will not be spooled or queued after reception;
it will be dropped with no additional logging.
2023-03-03 06:53:33 -07:00
Wez Furlong
da5f2433c0
add rfc3464 delivery status report parser
2023-03-02 14:46:30 -07:00
Wez Furlong
d5b13a263b
Add kumo.configure_bounce_classifier
...
and connect it to the logger
2023-03-02 08:59:03 -07:00
Wez Furlong
3d521a6468
fix reporting of bounce totals
...
A significant portion are bounced as they move through the queues,
not just those swept up in the direct application of the API call.
Pass in a shared hash map to track the counts and report on that
at the end of the call instead.
2023-03-01 19:57:47 -07:00
Wez Furlong
f48e6b1416
Add API for administratively bouncing mail
2023-03-01 16:40:26 -07:00
Wez Furlong
cd7ba3a2bb
make smtp client timeouts configurable by command
2023-03-01 12:19:45 -07:00
Wez Furlong
2b0ba702cb
add scheduling constraints
...
This is implemented by allowing the Message:set_due method to
load the message metadata to consult the scheduling constraints,
which should mean that all scheduling updates have the constraints
applied to them.
2023-03-01 09:43:48 -07:00
Tom Mairs
2480991dcf
clean up sub pages
2023-03-01 08:08:09 +00:00
Tom Mairs
2699111362
fixed page order in guide
2023-03-01 07:45:09 +00:00
Cloud User
5e6786f560
first guide commit
2023-03-01 07:11:54 +00:00
Wez Furlong
557fff650d
implement max_deliveries_per_connection
2023-02-28 15:12:15 -07:00
Wez Furlong
a691d7afcc
docs: note about the unspecified pool as the default
2023-02-28 13:58:50 -07:00
Wez Furlong
c275c696ff
implement message and connection rate throttles
...
These use the local/in-process throttles.
Seems to work in my very light testing so far.
2023-02-28 13:56:58 -07:00
Wez Furlong
50eabe6f98
docs: update get_egress_path_config parameters
2023-02-28 11:47:54 -07:00
Wez Furlong
f912fab58b
docs: egress source, egress path etc.
2023-02-28 10:31:00 -07:00
Wez Furlong
9ab1727792
rename: dest_site -> egress path
2023-02-28 09:56:20 -07:00
Wez Furlong
93ff9e1991
adjust dest_site to queue based on source->site
...
There needs to be another pass over this for naming,
but this brings us closer to the state shown in the
diagram in the readme.
2023-02-28 06:29:26 -07:00