mox/mox-
Mechiel Lukkien 6c0439cf7b
webmail: when moving a single message out of/to the inbox, ask if user wants to create a rule to automatically do that server-side for future deliveries
if the message has a list-id header, we assume this is a (mailing) list
message, and we require a dkim/spf-verified domain (we prefer the shortest that
is a suffix of the list-id value). the rule we would add will mark such
messages as from a mailing list, changing filtering rules on incoming messages
(not enforcing dmarc policies). messages will be matched on list-id header and
will only match if they have the same dkim/spf-verified domain.

if the message doesn't have a list-id header, we'll ask to match based on
"message from" address.

we don't ask the user in several cases:
- if the destination/source mailbox is a special-use mailbox (e.g.
  trash,archive,sent,junk; inbox isn't included)
- if the rule already exist (no point in adding it again).
- if the user said "no, not for this list-id/from-address" in the past.
- if the user said "no, not for messages moved to this mailbox" in the past.

we'll add the rule if the message was moved out of the inbox.
if the message was moved to the inbox, we check if there is a matching rule
that we can remove.

we now remember the "no" answers (for list-id, msg-from-addr and mailbox) in
the account database.

to implement the msgfrom rules, this adds support to rulesets for matching on
message "from" address. before, we could match on smtp from address (and other
fields). rulesets now also have a field for comments. webmail adds a note that
it created the rule, with the date.

manual editing of the rulesets is still in the webaccount page. this webmail
functionality is just a convenient way to add/remove common rules.
2024-04-21 17:14:08 +02:00
..
admin.go webadmin: make remaining domain settings configurable via admin web interface 2024-04-19 10:23:53 +02:00
cid.go add basic webserver that can do most of what i need 2023-02-28 22:19:24 +01:00
config.go webmail: when moving a single message out of/to the inbox, ask if user wants to create a rule to automatically do that server-side for future deliveries 2024-04-21 17:14:08 +02:00
dir.go mox! 2023-01-30 14:27:06 +01:00
dkimsign.go expose fewer internals in packages, for easier software reuse 2023-12-14 15:39:36 +01:00
doc.go mox! 2023-01-30 14:27:06 +01:00
fill.go add a webapi and webhooks for a simple http/json-based api 2024-04-15 21:49:02 +02:00
forkexec_unix.go replace packages slog and slices from golang.org/x/exp with stdlib 2024-02-08 14:49:01 +01:00
forkexec_windows.go fix build for windows 2024-01-01 16:08:50 +01:00
ip.go mox! 2023-01-30 14:27:06 +01:00
lastknown.go mox! 2023-01-30 14:27:06 +01:00
lifecycle.go switch to slog.Logger for logging, for easier reuse of packages by external software 2023-12-14 13:45:52 +01:00
lifecycle_test.go add funtionality to import zip/tgz with maildirs/mboxes to account page 2023-02-16 09:57:27 +01:00
limitauth.go change mox to start as root, bind to network sockets, then drop to regular unprivileged mox user 2023-02-27 12:19:55 +01:00
localserve.go add a webapi and webhooks for a simple http/json-based api 2024-04-15 21:49:02 +02:00
lookup.go normalize localparts with unicode nfc when parsing 2024-03-08 21:08:40 +01:00
msgid.go fix bug with concurrent math/rand.Rand.Read 2023-11-09 17:17:26 +01:00
rand.go don't expose functions on the prng that aren't mutex-protected 2024-03-07 10:05:35 +01:00
recvid.go mox! 2023-01-30 14:27:06 +01:00
sleep.go mox! 2023-01-30 14:27:06 +01:00
tlsrecv.go replace packages slog and slices from golang.org/x/exp with stdlib 2024-02-08 14:49:01 +01:00
webappfile.go show goversion and goos/goarch on admin page 2024-03-11 08:58:40 +01:00