Commit Graph

  • 833a67fe3d add config option to disable tls client auth during tls handshakes main Mechiel Lukkien 2025-06-09 12:26:58 +02:00
  • f5b8c64b84 fix typo's Mechiel Lukkien 2025-06-09 10:00:53 +02:00
  • f1259ee80e add config option to disable rate limiting for the webserver, and take a reverse proxy into account when finding the ip to use for webserver ratelimting Mechiel Lukkien 2025-05-15 20:16:49 +02:00
  • bb438488c5 add "Fail" transport, that immediately fails delivery Mechiel Lukkien 2025-05-15 17:59:49 +02:00
  • 91bfff220e add mx preference to smtpclient.GatherDestinations Mechiel Lukkien 2025-05-15 16:37:53 +02:00
  • cc627af263 fix tests for previous commit Mechiel Lukkien 2025-05-15 14:42:07 +02:00
  • 76e58f4a63 fix building previous commit with go1.23 Mechiel Lukkien 2025-05-15 14:25:18 +02:00
  • 4a14abc254 add "mox smtp dial" subcommand, for debugging connectivity issues Mechiel Lukkien 2025-05-15 14:12:08 +02:00
  • 70bbfc8f10 fix findings from gopls Mechiel Lukkien 2025-05-13 09:33:37 +02:00
  • aff279711c add ":z" to docker-compose volumes and remove deprecated version field from yml files Mechiel Lukkien 2025-05-12 10:29:22 +02:00
  • 2e0eea88b0 fix typos in referrer header Alice 2025-04-25 19:16:32 +01:00
  • baacdbca18 when registering login attempts, use X-Forwarded-For header for finding the IP address Mechiel Lukkien 2025-04-22 09:05:34 +02:00
  • ee99e82cf4 add v0.0.15 to website and rotate apidiff v0.0.15 Mechiel Lukkien 2025-04-18 21:25:37 +02:00
  • b7262d536d nit, tweaking release process order Mechiel Lukkien 2025-04-18 20:53:28 +02:00
  • 794ef75d17 accept incoming DMARC and TLS reports with reporting addresses containing catchall separator(s) Mechiel Lukkien 2025-04-18 12:34:07 +02:00
  • 4eddf5885d change default dmarc & tls reporting address so they don't contain a dash Mechiel Lukkien 2025-04-18 11:39:45 +02:00
  • 53f391ad18 fix flaky test where closing the imapclient connection fails because the server has also closed the tls connection Mechiel Lukkien 2025-04-18 09:23:30 +02:00
  • 14af5bbb12 when reparsing all messages, actually store the new mime structure in the database Mechiel Lukkien 2025-04-18 09:05:09 +02:00
  • 75bb1bfa2f queue: before removing files from the queue, close them, so removing doesn't fail on windows Mechiel Lukkien 2025-04-17 21:00:38 +02:00
  • 5f9f45983d use smaller batch size when reparsing all messages, to stay response when making changes on slower machines Mechiel Lukkien 2025-04-17 09:47:53 +02:00
  • 0ce0296a9f update public suffix list Mechiel Lukkien 2025-04-16 20:09:11 +02:00
  • 805ae0d827 update to latest golang.org/x dependencies Mechiel Lukkien 2025-04-16 20:01:32 +02:00
  • 1b2b152cb5 add "mox config account list", printing all accounts and whether they are disabled Mechiel Lukkien 2025-04-16 19:59:20 +02:00
  • 31c22618f5 automatically reparse all messages, in the background, after addition of header fields in the parsed mime form of messages in the message index database Mechiel Lukkien 2025-04-16 17:37:39 +02:00
  • 07533252b3 message: when parsing a message, don't treat absent header and empty header value the same Mechiel Lukkien 2025-04-16 13:04:55 +02:00
  • 3fe765dce9 imapserver: fix fuzz tests Mechiel Lukkien 2025-04-16 11:21:01 +02:00
  • e7b562e3f2 imapclient: first step towards making package usable as imap client with other imap servers, and minor imapserver bug fix Mechiel Lukkien 2025-04-14 21:53:18 +02:00
  • 2c1283f032 imapclient: clean up function signature of New, allowing for future options too Mechiel Lukkien 2025-04-11 21:04:13 +02:00
  • af3e9351bc imapserver: simplify and fix logic around processing changes while opening a mailbox (with SELECT or EXAMINE) Mechiel Lukkien 2025-04-11 20:28:35 +02:00
  • fd5167fdb3 imapserver: enable test that checked that an expunged message can still be read in sessions when they haven't processed the deletion yet. Mechiel Lukkien 2025-04-11 18:27:42 +02:00
  • 1a6d268e1d imapserver: check for UIDNEXT overflow when adding a message to a mailbox Mechiel Lukkien 2025-04-11 18:22:29 +02:00
  • 507ca73b96 imapserver: implement UIDONLY extension, RFC 9586 Mechiel Lukkien 2025-04-11 11:45:49 +02:00
  • 8bab38eac4 imapserver: implement NOTIFY extension from RFC 5465 Mechiel Lukkien 2025-04-07 23:21:03 +02:00
  • 5a7d5fce98 run ineffassign (fast) before staticcheck (slow) Mechiel Lukkien 2025-04-07 18:40:54 +02:00
  • 902de0e1f9 queue: in log lines about delivery, we had both "attempts" starting at 0 and "attempt" starting at 1, keep only "attempts" starting at 1 Mechiel Lukkien 2025-04-07 13:33:31 +02:00
  • 39c21f80cd imapserver: return proper response for FETCH of "BODY[1.MIME]" where 1 is a message Mechiel Lukkien 2025-04-07 12:15:13 +02:00
  • 462568d878 webmail: for "cid"/content-id's used in html, look for them in all other parts, not just when there is a multipart/related in the message Mechiel Lukkien 2025-04-07 11:10:14 +02:00
  • 2defbce0bc imapserver: return all the extensible fields for bodystructure, notably for content-disposition Mechiel Lukkien 2025-04-05 15:46:17 +02:00
  • 69d2699961 write base64 message parts with 76 data bytes on a line instead of 78 Mechiel Lukkien 2025-04-03 10:22:15 +02:00
  • 00c8db98e6 start more function names/calls with x when they handle errors through panics Mechiel Lukkien 2025-04-02 13:59:46 +02:00
  • deb57462a4 update list of sponsors, add logo's and link to the nlnet projects Mechiel Lukkien 2025-04-02 11:24:59 +02:00
  • 479bf29124 imapserver: implement the MULTISEARCH extension, with its ESEARCH command Mechiel Lukkien 2025-03-31 18:33:15 +02:00
  • 5dcf674761 webmail: reconnect automatically in more cases Mechiel Lukkien 2025-03-30 14:54:29 +02:00
  • aba0061073 small tweak to docs and website, mentioning EIA in the context of internalized email Mechiel Lukkien 2025-03-30 11:03:06 +02:00
  • cc5e3165ea imapserver: implement "inprogress" response code (RFC 9585) for keepalive during long search Mechiel Lukkien 2025-03-30 10:29:15 +02:00
  • 3e128d744e for the web interfaces, ensure the effective configured http paths end in a slash to prevent 404's and/or errors accessing the web interfaces Mechiel Lukkien 2025-03-29 21:48:56 +01:00
  • 3a3a11560e web interfaces: don't include version number in html, only return it after authentication Mechiel Lukkien 2025-03-29 20:46:53 +01:00
  • eeeabdc6de fix build with previous commit that didn't sync frontend Mechiel Lukkien 2025-03-29 20:16:05 +01:00
  • 3ac38aacca imapserver: fix storing previews when requested over imap and they are missing from the database Mechiel Lukkien 2025-03-29 20:13:10 +01:00
  • 6ab31c15b7 imapserver: actually announce PREVIEW extension Mechiel Lukkien 2025-03-29 18:28:33 +01:00
  • a5d74eb718 webmail: add buttons to download a message as eml, and export 1 or more messages as mbox/maildir in zip/tgz/tar, like for entire mailboxes Mechiel Lukkien 2025-03-29 18:10:23 +01:00
  • d6e55b5f36 don't use strings.Lines, it's only available in go1.24 and we support go1.23 too Mechiel Lukkien 2025-03-28 18:20:18 +01:00
  • 68729fa5a3 in smtp banner and imap ID command response when unauthenticated, don't send the mox version number Mechiel Lukkien 2025-03-28 17:46:08 +01:00
  • 789e4875ca update to latest bstore Mechiel Lukkien 2025-03-28 17:34:57 +01:00
  • 6bf80d91bc sync frontend api doc/client Mechiel Lukkien 2025-03-28 17:37:42 +01:00
  • aa631c604c imapserver: implement PREVIEW extension (RFC 8970), and store previews in message database Mechiel Lukkien 2025-03-28 16:57:44 +01:00
  • 8b418a9ca2 update golang.org/x dependencies Mechiel Lukkien 2025-03-28 16:23:28 +01:00
  • 027e5754a0 update to go1.23 and replace golang.org/x/exp/maps with stdlib maps Mechiel Lukkien 2025-03-28 16:16:27 +01:00
  • 7a87522be0 rename variables, struct fields and functions to include an "x" when they can panic for handling errors Mechiel Lukkien 2025-03-24 16:02:12 +01:00
  • a2c79e25c1 check and log errors more often in deferred cleanup calls, and log remote-induced errors at lower priority Mechiel Lukkien 2025-03-24 13:46:08 +01:00
  • 15a8ce8c0b fix warnings by ineffassign, with a one actual issue Mechiel Lukkien 2025-03-24 10:19:50 +01:00
  • 04b1f030b7 update to latest bstore, which now properly handles modifications during Query.ForEach Mechiel Lukkien 2025-03-24 10:01:57 +01:00
  • 88ec5c6fbe add rfc 4155 about mbox files, and cross-reference in the import/export code for mbox files Mechiel Lukkien 2025-03-23 13:59:09 +01:00
  • a68a9d8a48 check whether mailboxes have message/etc counts through an "upgrade" boolean flag Mechiel Lukkien 2025-03-23 12:45:21 +01:00
  • b37faa06bd After queueing a message in the web api's, prevent context cancelation from completing message changes Mechiel Lukkien 2025-03-23 11:07:39 +01:00
  • b0e4dcdb61 sync to latest autocert Mechiel Lukkien 2025-03-21 21:47:59 +01:00
  • 773d8cc959 update to latest github.com/mjl-/adns, synced to go1.24.1 Mechiel Lukkien 2025-03-21 18:42:02 +01:00
  • 70aedddc90 webmail: when composing, no longer remove the last remaining To address with the ctrl+backspace shortcut Mechiel Lukkien 2025-03-21 13:51:53 +01:00
  • 297e83188c Check for queued messages when removing an address, and more completely cleanup accounts when removing. Mechiel Lukkien 2025-03-21 12:27:39 +01:00
  • 75036c3a71 Before moving message files in imapserver and webmail API, ensure the message destination directory for the newly assigned IDs exist. Mechiel Lukkien 2025-03-21 10:18:39 +01:00
  • 99f9eb438f Minor cleanup: use the ModSeq from the Mailbox in a ChangeMailboxAdd, no need to add the ModSeq again Mechiel Lukkien 2025-03-20 00:10:47 +01:00
  • 9ca50ab207 imapserver: When trying to replace a message in a non-existent mailbox, do still consume the message if it is a non-synchronized literal Mechiel Lukkien 2025-03-19 22:00:34 +01:00
  • 5294a63c26 When logging structs, do log fields of type time.Time (timestamps) Mechiel Lukkien 2025-03-19 21:52:31 +01:00
  • 719dc2bee1 webmail: Don't abort SSE connection when a metadata/annotation change is made (broadcasted) Mechiel Lukkien 2025-03-16 14:02:45 +01:00
  • 26793e407a imapserver: Fix broadcasting change when modifying metadata key Mechiel Lukkien 2025-03-16 13:57:44 +01:00
  • ac4b006ecd When removing an account, wait for the last account reference has gone away before removing the files. Mechiel Lukkien 2025-03-15 12:22:04 +01:00
  • c4255a96f8 In tests, make initializing store/, its switchboard and an account more consistent. Mechiel Lukkien 2025-03-15 11:15:23 +01:00
  • eadbda027c Fix bug gathering "changes" to broadcast during a mailbox rename in certain situations Mechiel Lukkien 2025-03-15 10:45:35 +01:00
  • 0cf0bfb8a6 We won't be implementing IMAP UNAUTHENTICATE. Mechiel Lukkien 2025-03-12 10:01:00 +01:00
  • 60da7f34b8 Make error message in imapserver tests about missing untagged responses more readable. Mechiel Lukkien 2025-03-10 19:00:44 +01:00
  • 397fd1f5e7 imapserver: Make list of announced capabilities more readable. Mechiel Lukkien 2025-03-10 11:48:10 +01:00
  • a553a107f0 Cleanup temporary files created during IMAP APPEND command. Mechiel Lukkien 2025-03-10 09:26:24 +01:00
  • 0857e81a6c Prevent spurious warnings about thread ids not being correct for messages that are expunged but not yet erased. Mechiel Lukkien 2025-03-08 09:03:41 +01:00
  • 2314397078 Fix recently introduced bug when authentication with password. Mechiel Lukkien 2025-03-07 21:30:20 +01:00
  • 1c58d38280 webmail: When completing a recipient address, quote the "name" if necessary for proper interpretation. Mechiel Lukkien 2025-03-07 15:48:24 +01:00
  • 9a8bb1134b Allow multiple localpart catch all separators, e.g. both "+" and "-", for addresses you+anything@example.com and you-anything@example.com Mechiel Lukkien 2025-03-07 14:39:58 +01:00
  • d0b241499f smtpserver: In localserve mode, don't reject messages "From" domain "localhost" if it doesn't resolve to an IP Mechiel Lukkien 2025-03-07 11:39:24 +01:00
  • 2fc75b5b7b When adding a new domain, only set up RSA DKIM keys, not ed25519. Mechiel Lukkien 2025-03-07 10:51:53 +01:00
  • d78aa9d1d7 Fix previous commit, add missing error check and minor test refactor. Mechiel Lukkien 2025-03-07 10:30:55 +01:00
  • 51f58a52c9 When opening an account, check for unexpected message files in the file system, and adjust the next message ID autoincrement sequence in the database to prevent future message delivery failures. Mechiel Lukkien 2025-03-07 10:15:27 +01:00
  • 493cfee3e1 Mention NLnet funding continued in 2024/2025. Mechiel Lukkien 2025-03-06 20:26:25 +01:00
  • 64f2f788b1 Run modernize to rewrite some older go constructs to newer ones Mechiel Lukkien 2025-03-06 17:33:06 +01:00
  • f6132bdbc0 imapserver: Disable compress=deflate extension Mechiel Lukkien 2025-03-06 09:53:34 +01:00
  • e572d01341 Don't allow mailboxes named "." or ".." and normalize names during imports too Mechiel Lukkien 2025-03-05 22:28:25 +01:00
  • 7872b138a5 Use consistent lower-case names when logging tls version and ciphersuite Mechiel Lukkien 2025-03-05 21:58:24 +01:00
  • aa2b24d861 webserver: don't raise a 500 server error for static file requests with overlong names Mechiel Lukkien 2025-03-05 21:27:32 +01:00
  • 06b7c8bba0 Fix fuzzing for imapserver Mechiel Lukkien 2025-03-05 19:47:29 +01:00
  • edfc24a701 rename a few variables for code consistency Mechiel Lukkien 2025-03-05 17:38:23 +01:00
  • 96667a87eb Run go test with the -fullpath flag Mechiel Lukkien 2025-03-05 17:35:22 +01:00
  • a5c64e4361 make code less indented Mechiel Lukkien 2025-03-05 17:34:57 +01:00