Commit Graph

  • 577944310c Improve expunged message/UID tracking in IMAP sessions, track synchronization history for mailboxes/annotations. Mechiel Lukkien 2025-03-05 17:17:57 +01:00
  • 684c716e4d Add missing wlocks around message delivery to account, mostly for tests. Mechiel Lukkien 2025-03-03 23:59:43 +01:00
  • 2da280f2bb Fail tests if unhandled panics happened. Mechiel Lukkien 2025-03-03 19:57:19 +01:00
  • bc50c3bf7f In imapserver with RENAME of Inbox, we didn't check for the metadata quota. Mechiel Lukkien 2025-03-02 16:46:06 +01:00
  • f5b67b5d3d Clean up the loginattemptclear goroutine with store.Close() Mechiel Lukkien 2025-03-01 18:42:36 +01:00
  • 2beb30cc20 Refactor how messages are added to mailboxes Mechiel Lukkien 2025-03-01 16:06:01 +01:00
  • 7855a32852 switch from docker-compose to "docker compose" Mechiel Lukkien 2025-03-01 16:01:55 +01:00
  • 82371ad15b simplify cleaning up temp files in gentestdata.go Mechiel Lukkien 2025-03-01 12:04:46 +01:00
  • 9ce552368b Minor tweaks. Mechiel Lukkien 2025-03-01 11:19:02 +01:00
  • ea64936a67 Cleanup message file when DeliverMailbox fails. Mechiel Lukkien 2025-03-01 11:07:05 +01:00
  • 5ba51adb14 When retraining ham/spam messages, don't make existence of the messages optional. Mechiel Lukkien 2025-03-01 10:48:36 +01:00
  • 3b731b7afe various nits Mechiel Lukkien 2025-03-01 10:27:00 +01:00
  • 7756150a69 Small tweak to LinkOrCopy, including defer for error handling Mechiel Lukkien 2025-03-01 10:25:47 +01:00
  • ffc7ed96bc When delivering a message to a mailbox, remember last dir we delivered to Mechiel Lukkien 2025-03-01 10:11:02 +01:00
  • 1037a756fa when delivering a message to a mailbox, lazily parse the parsed form of the message Mechiel Lukkien 2025-03-01 09:54:37 +01:00
  • 3050baa15a consistently use store.CloseRemoveTempFile for closing and removing temp files Mechiel Lukkien 2025-03-01 08:43:53 +01:00
  • b822533df3 imapserver: Don't keep account write-locked during IMAP FETCH command Mechiel Lukkien 2025-02-27 09:35:14 +01:00
  • caaace403a Add package smtp as fuzzing target since its addition in previous commit Mechiel Lukkien 2025-03-06 11:15:25 +01:00
  • f10bb2c1ae smtp: add data reader fuzzer + fix OOB read Martin Holst Swende 2025-03-06 09:57:13 +01:00
  • 44d37892b8 imapserver: REPLACE commands when in read-only mode should fail Mechiel Lukkien 2025-02-26 18:39:41 +01:00
  • d7bd50b5a5 imapserver: fix spurious test failure due to recently added account consistency check Mechiel Lukkien 2025-02-26 18:33:01 +01:00
  • f235b6ad83 imapclient: log traces of sensitive data with traceauth, and of bulk data with tracedata Mechiel Lukkien 2025-02-26 18:13:20 +01:00
  • 9c40205343 imapserver: Prevent spurious test failures due to compression layer being closed and TLS close-writes failing Mechiel Lukkien 2025-02-26 15:41:46 +01:00
  • 062c3ac182 when writing updated word counts to the junk filter, remove entries where both counts are 0 Mechiel Lukkien 2025-02-26 15:05:25 +01:00
  • 394bdef39d In storage consistency checks, verify the junk filter has the expected word counts Mechiel Lukkien 2025-02-26 14:40:47 +01:00
  • aa85baf511 add consistency check (enabled during tests only) for unexpected message files in the account message directory Mechiel Lukkien 2025-02-26 11:40:36 +01:00
  • 17de90e29d imapserver: Prevent spurious unhandled panics for connections with compress=deflate that break Mechiel Lukkien 2025-02-26 10:50:04 +01:00
  • ea55c85938 for trace logging, log size of the data (but not for redacted auth data, could be a password) Mechiel Lukkien 2025-02-26 10:14:07 +01:00
  • 92a87acfcb Implement IMAP REPLACE extension, RFC 8508. Mechiel Lukkien 2025-02-25 23:27:19 +01:00
  • 1066eb4c9f imapclient: add a type Append for messages for the APPEND-command, and accept multiple for servers with MULTIAPPEND capability Mechiel Lukkien 2025-02-25 23:24:37 +01:00
  • 88a68e9143 imapserver: properly accept literal8 for APPEND, since we claim to implement the BINARY extension Mechiel Lukkien 2025-02-25 23:07:56 +01:00
  • 78e0c0255f imapserver: implement MULTIAPPEND extension, rfc 3502 Mechiel Lukkien 2025-02-24 15:47:47 +01:00
  • b56d6c4061 imapserver: try harder to get the user-agent (from the ID command) into the loginattempt Mechiel Lukkien 2025-02-24 09:38:17 +01:00
  • d27fc1e7fc gofmt Mechiel Lukkien 2025-02-23 22:40:34 +01:00
  • f117cc0fe1 website: mention tls-alpn-01 and http-01 acme challenge types are implemented, but not dns-01 yet Mechiel Lukkien 2025-02-23 22:28:07 +01:00
  • 0ed820e3b0 imapserver: implement rfc 9590, returning metadata in the extended list command Mechiel Lukkien 2025-02-23 22:12:18 +01:00
  • 2809136451 imap metadata extension: allow keys in the /shared/ namespace too Mechiel Lukkien 2025-02-23 20:19:07 +01:00
  • 463e801909 add more rfc's and shuffle roadmap once more Mechiel Lukkien 2025-02-23 12:08:11 +01:00
  • 3b224ea0c2 consistent simpler parsing of domains in cli commands Mechiel Lukkien 2025-02-23 11:34:51 +01:00
  • 151729af08 in dns.ParseDomain, don't allow ipv4 addresses (ipv6 addresses were already rejected) Mechiel Lukkien 2025-02-23 11:33:31 +01:00
  • 797c1cf9f0 do not log an error for tls requests with ipv6 addresses as sni server name Mechiel Lukkien 2025-02-23 10:44:17 +01:00
  • cad585a70e webmail: when trying to empty an already empty mailbox, make it a user error, not server error Mechiel Lukkien 2025-02-22 23:11:34 +01:00
  • 9f3cb7340b update modseq when changing mailbox/server metadata, and also for specialuse changes, and keep track of modseq for mailboxes Mechiel Lukkien 2025-02-22 22:44:15 +01:00
  • 7c7473ef0e fix tests on bsds, since previous commit Mechiel Lukkien 2025-02-21 20:38:37 +01:00
  • f40f94670e implement IMAP extension COMPRESS=DEFLATE, rfc 4978 Mechiel Lukkien 2025-02-20 19:33:09 +01:00
  • 3f6c45a41f for trace-level logging in console format (as opposed to logfmt), print the trace as quoted string Mechiel Lukkien 2025-02-20 17:42:00 +01:00
  • 95d2002e77 announce support for namespace extension in imap capabilities line Mechiel Lukkien 2025-02-20 08:32:33 +01:00
  • a458920721 pass "go vet" again, can't use unkeyed struct fields from other package Mechiel Lukkien 2025-02-19 23:06:11 +01:00
  • 6ed97469b7 imapclient: parse fetch attribute "internaldate" as time.Time instead of keeping it as string Mechiel Lukkien 2025-02-19 23:01:23 +01:00
  • 02c4715724 remove intention to implement \important special-use mailbox and $important message flag, rfc 8457 Mechiel Lukkien 2025-02-19 22:44:04 +01:00
  • 5e4d80d48e implement the WITHIN IMAP extension, rfc 5032 Mechiel Lukkien 2025-02-19 21:29:14 +01:00
  • dcaa99a85c implement IMAP CREATE-SPECIAL-USE extension for the mailbox create command, part of rfc 6154 Mechiel Lukkien 2025-02-19 20:39:26 +01:00
  • 7288e038e6 implement imap savedate extension, rfc 8514 Mechiel Lukkien 2025-02-19 17:11:20 +01:00
  • cbe5bb235c fix data race in code for logging login attempts Mechiel Lukkien 2025-02-19 15:23:19 +01:00
  • de6262b90a make test for imap getmetadata reliable by sorting output by key Mechiel Lukkien 2025-02-19 14:58:22 +01:00
  • f30c44eddb implement the imap metadata extension, rfc 5464 Mechiel Lukkien 2025-02-17 22:44:51 +01:00
  • 9dff879164 in domain/dns self-check, for unused services, check that port is 0 like how we told users to configure it and fix checking for errors during srv lookups Mechiel Lukkien 2025-02-16 17:42:24 +01:00
  • 1c4bf8909c webmail: when forwarding, include the subject,date,from,reply-to,to,cc headers in the message Mechiel Lukkien 2025-02-16 16:45:02 +01:00
  • 4765bf3b2c shuffle entries in roadmap Mechiel Lukkien 2025-02-16 16:28:03 +01:00
  • 3d0dc3a79d in domain/dns self-check, for unexpected SRV records for "srv autoconfig", show the values of the unexpected records Mechiel Lukkien 2025-02-16 16:21:01 +01:00
  • 6f678125a5 in domain/dns self-check, provide config snippet for HostTLSRPT if it isn't configured and the admin should check again for the DNS records Mechiel Lukkien 2025-02-16 16:12:44 +01:00
  • 1d6f45e592 in domain/dns self-check, don't warn about reverse dns that resolves to multiple names Mechiel Lukkien 2025-02-16 15:55:31 +01:00
  • 6da5f8f586 add config option to an account destination to reject messages that don't pass a dmarc-like aligned spf/aligned dkim check Mechiel Lukkien 2025-02-15 17:32:31 +01:00
  • f33870ba85 move the large commands for generating api docs to separate shell script Mechiel Lukkien 2025-02-15 12:56:59 +01:00
  • 3e53abc4db add account config option to prevent the account for setting their own custom password, and enable by default for new accounts Mechiel Lukkien 2025-02-15 12:44:18 +01:00
  • 09975a3100 when warning about weak passwords, mention that passwords reused at other services in particular Mechiel Lukkien 2025-02-15 11:48:10 +01:00
  • 46c1693ee9 when delivering over smtp, do not require the other server to announce the 8bitmime extension unless in pedantic mode Mechiel Lukkien 2025-02-15 10:04:01 +01:00
  • 93b627ceab main: fix reading passwords longer than 64 bytes BlankEclair 2025-02-09 22:52:02 +11:00
  • c210b50433 update publicsuffix list to latest version Mechiel Lukkien 2025-02-07 12:02:39 +01:00
  • 2f0997682b quickstart: check if domain was registered recently, and warn about potential deliverability issues Mechiel Lukkien 2025-02-07 11:16:30 +01:00
  • c7354cc22b also unicode-normalize usernames (email addresses) when logging into the imapserver and webapps Mechiel Lukkien 2025-02-06 15:37:33 +01:00
  • 7b3ebb2647 imapserver: remove unreachable check for logindisabled Mechiel Lukkien 2025-02-06 15:28:01 +01:00
  • e5e15a3965 add prometheus metrics for errors when getting certificates through acme (typically from let's encrypt) Mechiel Lukkien 2025-02-06 15:12:36 +01:00
  • 1277d78cb1 keep track of login attempts, both successful and failures Mechiel Lukkien 2025-02-05 23:52:21 +01:00
  • d08e0d3882 webmail: fix dark mode Mechiel Lukkien 2025-02-03 18:28:48 +01:00
  • 091faa8048 webmail: fix parsing search filter "start:<date>" and "end:<date>" Mechiel Lukkien 2025-01-30 12:15:44 +01:00
  • ef77f58e08 webmail: add button to create a mailbox below another one Mechiel Lukkien 2025-01-30 11:55:57 +01:00
  • ad26fd265d webmail: add button to mark a mailbox and its children as read Mechiel Lukkien 2025-01-30 11:50:52 +01:00
  • c8fd9ca664 webmail: after clicking on the "create mailbox" button, automatically put focus on the input field for the new mailbox name Mechiel Lukkien 2025-01-30 11:02:12 +01:00
  • f9280b0891 reduce logging about db schema initializations during tests Mechiel Lukkien 2025-01-30 10:21:16 +01:00
  • 807d01ee21 simplify/cleanup common smtpserver test code Mechiel Lukkien 2025-01-29 21:11:39 +01:00
  • ec7904c0ee add fail2ban snippet to FAQ Mechiel Lukkien 2025-01-29 20:58:31 +01:00
  • df17ae2321 in email to postmaster about new mox version, don't mention "mox backup" explicitly, it's in all the release notes nowadays Mechiel Lukkien 2025-01-29 20:27:33 +01:00
  • 6ed736241d also use "password-encrypted" for the 2nd autoconfig configuration Mechiel Lukkien 2025-01-27 08:31:13 +01:00
  • 49e2eba52b add cli command "mox admin imapserve $preauthaddress" Mechiel Lukkien 2025-01-25 22:18:26 +01:00
  • 2d3d726f05 add config options to disable a domain and to disable logins for an account Mechiel Lukkien 2025-01-25 20:39:20 +01:00
  • 132efdd9fb don't use non-constant for string formatting Mechiel Lukkien 2025-01-24 17:00:39 +01:00
  • 3e2695323c add config option to reject incoming deliveries with an error during the smtp transaction Mechiel Lukkien 2025-01-24 16:51:21 +01:00
  • 8b26e3c972 consistently add details about configuration errors when parsing domains.conf Mechiel Lukkien 2025-01-24 15:06:55 +01:00
  • 890c75367a mox backup: skip message files that were added to queue or account message directories while making the backup, instead of storing them and warning about them Mechiel Lukkien 2025-01-24 12:24:57 +01:00
  • 76e96ee673 Change "mox backup $destdir" from storing only data files to $destdir to storing those under $destdir/data and now also copying config files to $destdir/config. (#150) Mechiel Lukkien 2025-01-24 11:35:28 +01:00
  • 3d52efbdf9 fix apidiff.sh to always generate a new apidiff/next.txt file Mechiel Lukkien 2025-01-23 23:02:36 +01:00
  • 6aa2139a54 do not use results from junk filter if we have less than 50 positive classifications to base the decision on Mechiel Lukkien 2025-01-23 22:55:50 +01:00
  • 8fac9f862b attempt to fix workflow again Mechiel Lukkien 2025-01-23 18:40:05 +01:00
  • 7df54071d7 update to github action actions/upload-artifact@v4 from v3 Mechiel Lukkien 2025-01-23 18:29:43 +01:00
  • acc1c133b0 admin check: do not raise error when forward-confirmed reverse dns does not match hostname Mechiel Lukkien 2025-01-23 18:11:00 +01:00
  • 3c77e076e2 Add support for negotiating IMAP and SMTP on the HTTPS port 443 using TLS ALPN "imap" and "smtp" s0ph0s 2025-01-23 11:13:06 +01:00
  • 0203dfa9d9 webmail: fix nil pointer dereference when searching for attachment types, eg "a:spreadsheet" Mechiel Lukkien 2025-01-23 11:03:08 +01:00
  • 008de1cafb webmail: in message view, under More, add button to open currently displayed part (either text or html) as raw text (but decoded if in base64/quoted-printable/etc). Mechiel Lukkien 2025-01-22 21:18:02 +01:00
  • 7647264a72 web interfaces: when there is no login session, and a non-existent path is requested, mention the web interface this is about Mechiel Lukkien 2025-01-22 20:15:14 +01:00