{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":595136650,"defaultBranch":"main","name":"mox","ownerLogin":"mjl-","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-01-30T13:26:58.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1684740?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1714504772.0","currentOid":""},"activityList":{"items":[{"before":"0977b7a6d376b80124f3853ea585675748ca9b65","after":"a7bdc41cd40706f8f8e54e20bec869827e61c98b","ref":"refs/heads/main","pushedAt":"2024-09-15T15:23:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"reject attempts at starttls for smtp & imap when no tls config is present\n\nwe didn't announce starttls as capability, but clients can still try them. we\nwould try to do a handshake with a nil certificate, which would cause a\ngoroutine panic (which is handled gracefully, shutting down the connection).\n\nfound with code that was doing starttls unconditionally.","shortMessageHtmlLink":"reject attempts at starttls for smtp & imap when no tls config is pre…"}},{"before":"661e77c62272a5780f666325f5969aeab35f8b68","after":"0977b7a6d376b80124f3853ea585675748ca9b65","ref":"refs/heads/main","pushedAt":"2024-09-14T18:55:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"get rid of some more gnulinuxisms\n\nto get builds on openbsd going","shortMessageHtmlLink":"get rid of some more gnulinuxisms"}},{"before":"b7ba0482ba695bf43e2f780407a53e55df30d71b","after":"661e77c62272a5780f666325f5969aeab35f8b68","ref":"refs/heads/main","pushedAt":"2024-09-14T12:23:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"remove linuxism\n\nshould make build get further on openbsd","shortMessageHtmlLink":"remove linuxism"}},{"before":"594182aae5881c4c4f5e8caacaab8c25cea7e3c8","after":"b7ba0482ba695bf43e2f780407a53e55df30d71b","ref":"refs/heads/main","pushedAt":"2024-09-08T07:51:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"don't run install scripts when installing js dependencies","shortMessageHtmlLink":"don't run install scripts when installing js dependencies"}},{"before":"a977082b89db0cabb742c1e8c32e448650e91288","after":"594182aae5881c4c4f5e8caacaab8c25cea7e3c8","ref":"refs/heads/main","pushedAt":"2024-08-23T13:14:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"webmail: rename query string param \"token\" to \"singleUseToken\" to be less scary in access logs\n\nthese singleusetokens can be redeemed once. so when you see it in the logs, it\ncan't be used again. they are short-lived anyway.\n\nthis change should help prevent me periodically investigating token handling...","shortMessageHtmlLink":"webmail: rename query string param \"token\" to \"singleUseToken\" to be …"}},{"before":"b77f44ab5819e7bf67fd040a628013e325c00a6b","after":"a977082b89db0cabb742c1e8c32e448650e91288","ref":"refs/heads/main","pushedAt":"2024-08-23T12:56:07.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"when login sessions to admin/account/webmail interfaces expiry or are no longer valid, explain the behaviour in the message\n\nbefore, we would just say \"session expired\". now we say \"session expired (after\n12 hours inactivity)\" (for admin) or \"session expired (after 24 hours\ninactivity)\" for account/webmail. for unknown sessions in the admin interface,\nwe also explain that server restarts and 10 more new sessions can be the\nreason.\n\nfor issue #202 by ally9335","shortMessageHtmlLink":"when login sessions to admin/account/webmail interfaces expiry or are…"}},{"before":"a485df830dfd9e372f6927fa0de1ac9485027fd9","after":"b77f44ab5819e7bf67fd040a628013e325c00a6b","ref":"refs/heads/main","pushedAt":"2024-08-23T12:09:29.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"webmail: add setting to show html version of a message by default, instead of text version\n\nrelated to issue #196 by GildedHonour","shortMessageHtmlLink":"webmail: add setting to show html version of a message by default, in…"}},{"before":"62bd2f442731670a34c39926b064dfa34bb5d7ac","after":"a485df830dfd9e372f6927fa0de1ac9485027fd9","ref":"refs/heads/main","pushedAt":"2024-08-23T10:16:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"webapi: minor tweaks in docs","shortMessageHtmlLink":"webapi: minor tweaks in docs"}},{"before":"7e7f6d48f1696895511787959f53806cfefed261","after":"62bd2f442731670a34c39926b064dfa34bb5d7ac","ref":"refs/heads/main","pushedAt":"2024-08-23T09:15:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"for incoming smtp deliveries with starttls, use cert of hostname if sni hostname is unknown\n\ninstead of failing the connection because no certificates are available.\n\nthis may improve interoperability. perhaps the remote smtp client that's doing\nthe delivery will decide they do like the tls cert for our (mx) hostname after\nall.\n\nthis only applies to incoming smtp deliveries. for other tls connections\n(https, imaps/submissions and imap/submission with starttls) we still cause\nconnections for unknown sni hostnames to fail. if case no sni was present, we\nwere already falling back to a cert for the (listener/mx) hostname, that\nbehaviour hasn't changed.\n\nfor issue #206 by RobSlgm","shortMessageHtmlLink":"for incoming smtp deliveries with starttls, use cert of hostname if s…"}},{"before":"c16162eebc77dd37370e592d3eb519c3be74dcc8","after":"7e7f6d48f1696895511787959f53806cfefed261","ref":"refs/heads/main","pushedAt":"2024-08-22T20:15:19.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"install latest versions of staticcheck & shadow\n\nthey tend to break each 6 months with a new go toolchain.\nlisting fixed versions probably causes more failures than always using the\nlatest versions.","shortMessageHtmlLink":"install latest versions of staticcheck & shadow"}},{"before":"5678b03324864f01668f47c6a78e2d56efe456e5","after":"c16162eebc77dd37370e592d3eb519c3be74dcc8","ref":"refs/heads/main","pushedAt":"2024-08-22T19:25:37.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"update to golang.org/x/{crypto,net,text,sync,tools}@latest","shortMessageHtmlLink":"update to golang.org/x/{crypto,net,text,sync,tools}@latest"}},{"before":"016fde8d783247129613b16b60dbe14e2a855b51","after":"5678b03324864f01668f47c6a78e2d56efe456e5","ref":"refs/heads/main","pushedAt":"2024-08-22T15:42:19.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"recognize more charsets than utf-8/iso-8859-1/us-ascii when parsing message headers with address\n\nas they occur in From/To headers, for example: \"From:\n=?iso-8859-2?Q?Krist=FDna?= \". we are using net/mail to parse\nsuch headers. most address-parsing functions in that package will only decode\ncharsets utf-8, iso-8859-1 and us-ascii. we have to be careful to always use\nnet/mail.AddressParser with a WordDecoder that understands more that the\nbasics.\n\nfor issue #204 by morki, thanks for reporting!","shortMessageHtmlLink":"recognize more charsets than utf-8/iso-8859-1/us-ascii when parsing m…"}},{"before":"2c003991bb98025582195d4f6a4aae27875f396d","after":"016fde8d783247129613b16b60dbe14e2a855b51","ref":"refs/heads/main","pushedAt":"2024-08-22T14:08:05.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"fix parsing message headers with addresses that need double quotes\n\nwe are using Go's net/mail to parse message headers. it can parse addresses,\nand properly decodes email addresses with double quotes (e.g. \" \"@example.com).\nhowever, it gives us an address without the double quotes in the localpart,\neffectively an invalid address. we now have a workaround to parse such\nnot-quite-addresses.\n\nfor issue #199 reported by gene-hightower, thanks for reporting!","shortMessageHtmlLink":"fix parsing message headers with addresses that need double quotes"}},{"before":"aead73883601ecb259e7a27d834bcbaf8e4af07a","after":"2c003991bb98025582195d4f6a4aae27875f396d","ref":"refs/heads/main","pushedAt":"2024-08-05T10:16:29.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"webmail: put attached files before inline files\n\nsome emails have text and html versions. the html can have several logo images.\nand there may be a pdf attached. when gathering attachments to show in webmail,\nthe pdf would come last. it could happen the logo images would get a link to\nclick, and the pdf would be behind the \"more ...\" button. by putting\n\"multipart/mixed\" files before the \"multipart/related\" in the list, it's more\nlikely that useful files can be clicked immediately, and unimportant logo files\nare behind the \"more\"-button.","shortMessageHtmlLink":"webmail: put attached files before inline files"}},{"before":"c629ae26afee9976f7c6530ecff86f561108606e","after":"aead73883601ecb259e7a27d834bcbaf8e4af07a","ref":"refs/heads/main","pushedAt":"2024-07-18T19:22:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"attempt at improving interoperability of with outlook 365 using the smtp \"login\" sasl auth mechanism\n\nby sending the (encoded) string \"User Name\" as mentioned by the internet-draft,\nhttps://datatracker.ietf.org/doc/html/draft-murchison-sasl-login-00#section-2.1\n\nthat document says clients should ignore the challenge (which is why were were\nnot doing any effort and sending an empty challenge). but it also says some\nclients require the challenge \"Username:\" instead of \"User Name\", implying that\nit's important to not send an empty challenge. we can't send both challenges\nthough...\n\nfor issue #51","shortMessageHtmlLink":"attempt at improving interoperability of with outlook 365 using the s…"}},{"before":"151bd1a9c0446accb176091477f3c8a7b95d04df","after":"c629ae26afee9976f7c6530ecff86f561108606e","ref":"refs/heads/main","pushedAt":"2024-07-08T20:08:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"don't prevent the html pages to load a favicon, and provide one by default\n\nfor issue #186 by morki, thanks for reporting and providing sample favicons.\n\ngenerated by the mentioned generator at favicon.io, with the ubuntu font and a\nfuchsia-like color.\n\nthe favicon is served for listeners/domains that have the\nadmin/account/webmail/webapi endpoints enabled, i.e. user-facing. the mta-sts,\nautoconfig, etc urls don't serve the favicon.\n\nadmins can create webhandler routes to serve another favicon. these webhandler\nroutes are evaluted before the favicon route (a \"service handler\").","shortMessageHtmlLink":"don't prevent the html pages to load a favicon, and provide one by de…"}},{"before":"7e54280a9d9df32db894ff11b45fcaeb7c1d24da","after":"151bd1a9c0446accb176091477f3c8a7b95d04df","ref":"refs/heads/main","pushedAt":"2024-07-01T10:12:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"Set syslog facility to mail","shortMessageHtmlLink":"Set syslog facility to mail"}},{"before":"367e968199bbd260be958eb0f59ed8da0f63d83c","after":"7e54280a9d9df32db894ff11b45fcaeb7c1d24da","ref":"refs/heads/main","pushedAt":"2024-06-28T12:57:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"show the same spf record for a domain in the dnsrecords and dnscheck output/pages\n\nbefore, the suggested records would show \"v=spf1 mx ~all\", while the dnscheck\npage would suggest \"v=spf1 ip4:... ip6:... -all\".\n\nthe two places now show the same record: explicitly listing the configured ip's\n(so the common case of a valid message is fast and doesn't require lookups of\nmx hosts and their addresses), but still including \"mx\" (may prevent issues\nwhile migrating to new ips in the future and doesn't hurt for legit messages),\nand \"~all\" (for compatibility with some old systems that don't look at\ndkim/dmarc when they evaluate spf and reach \"-all\")\n\nbased on #176 created by rdelaage, with record mismatch spotted by RobSlgm,\nthanks!","shortMessageHtmlLink":"show the same spf record for a domain in the dnsrecords and dnscheck …"}},{"before":"73373a19c1347e781aed16a76419ba41e2a1620d","after":"367e968199bbd260be958eb0f59ed8da0f63d83c","ref":"refs/heads/main","pushedAt":"2024-06-28T08:40:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"fix parsing Authentication-Results header with a \"reason=...\" part\n\nnoticed in gopherwatch logging","shortMessageHtmlLink":"fix parsing Authentication-Results header with a \"reason=...\" part"}},{"before":"e350af7eed6804a32f8f9729bf99aa7de9f2b717","after":"73373a19c1347e781aed16a76419ba41e2a1620d","ref":"refs/heads/main","pushedAt":"2024-06-27T13:58:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"in dnscheck, warn when dane is not configured (through static host keys), instead of showing \"OK\"\n\nif no host keys are configured, show as warning (yellow) that dane isn't\nconfigured, and show instructions to enable it.\n\nfor issue #185 by morki, thanks for reporting!","shortMessageHtmlLink":"in dnscheck, warn when dane is not configured (through static host ke…"}},{"before":"beee03574af21d5f0b721c3301b1301283a3f574","after":"e350af7eed6804a32f8f9729bf99aa7de9f2b717","ref":"refs/heads/main","pushedAt":"2024-06-27T13:13:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"during dnscheck, if srv accountconfig record with just a dot, for a non-existent service, is missing, show as warning instead of error\n\nthe suggested dns records mention that these records are optional, but the\ndnscheck makes it look serious. not helpful.\n\nalso remove unneeded whitespace in list of errors/warnings.\n\nfor issue #184 by morki, thanks for reporting!","shortMessageHtmlLink":"during dnscheck, if srv accountconfig record with just a dot, for a n…"}},{"before":"fdcd2eb0ebcf8bb589289ff88488cdc10b819fb2","after":"beee03574af21d5f0b721c3301b1301283a3f574","ref":"refs/heads/main","pushedAt":"2024-06-24T09:47:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"mention that imported messages are not deduplicated\n\nso importing twice can result in duplicates.\n\nrelated to issue #180","shortMessageHtmlLink":"mention that imported messages are not deduplicated"}},{"before":"ac3596a7d7bf5f5e86b665b1ac06afc5aac9e430","after":"fdcd2eb0ebcf8bb589289ff88488cdc10b819fb2","ref":"refs/heads/main","pushedAt":"2024-06-24T08:27:40.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"webadmin: remove stray text \"pre\" in on the \"required dns records\" page","shortMessageHtmlLink":"webadmin: remove stray text \"pre\" in on the \"required dns records\" page"}},{"before":"8254e9ce66d284c59fa37cb34d8d63f5a7663ece","after":"ac3596a7d7bf5f5e86b665b1ac06afc5aac9e430","ref":"refs/heads/main","pushedAt":"2024-06-10T21:09:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"try fixing race in tests of ctl socket\n\nthere were a few test failures on the github runners. i can't reproduce it\nlocally. but i can see how they are happening: a gorouting running servectlcmd\ncould still be doing cleanup (removing files) while a next ctl command was\nbeing run. with this change, we wait for servectlcmd to be done before starting\non a next test.","shortMessageHtmlLink":"try fixing race in tests of ctl socket"}},{"before":"f56b04805b0070116da56e9cc4cffd138c968143","after":"8254e9ce66d284c59fa37cb34d8d63f5a7663ece","ref":"refs/heads/main","pushedAt":"2024-06-10T19:37:30.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"webmail: only show \"edit\" button on drafts, and similar for \"e\" shortcut\n\nalways showing the \"edit\" button was a bug.","shortMessageHtmlLink":"webmail: only show \"edit\" button on drafts, and similar for \"e\" shortcut"}},{"before":"aef99a72d8f8da30530f4a8f6b4eac6f9a44aa05","after":"f56b04805b0070116da56e9cc4cffd138c968143","ref":"refs/heads/main","pushedAt":"2024-06-10T16:19:20.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"make tests pass with \"go test -count n\" with n > 1\n\nby closing initialized resources during tests.","shortMessageHtmlLink":"make tests pass with \"go test -count n\" with n > 1"}},{"before":"614576e409a6e2f115bc6c11bd03a50b9b45ddec","after":"aef99a72d8f8da30530f4a8f6b4eac6f9a44aa05","ref":"refs/heads/main","pushedAt":"2024-06-10T13:02:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"imapserver: prevent unbounded memory allocations when handling a command\n\nsome commands, like search, can specify any number of literals, of arbitrary\nsize. we already limited individual literals to 100kb. but you could specify\nmany of them, causing unbounded memory consumption. this change adds a limit of\n1000 literals in a command, and a limit of 1mb of total combined memory for\nliterals. once the limits are exceeded, a TOOBIG error code is returned.\n\nunbounded memory use could only be triggered on authenticated connections.\n\nthis addresses the same issue as CVE-2024-34055 for cyrus-imap, by damian\npoddebniak.","shortMessageHtmlLink":"imapserver: prevent unbounded memory allocations when handling a command"}},{"before":"9152384fd317e9baacaaf707acee95540af096d6","after":"614576e409a6e2f115bc6c11bd03a50b9b45ddec","ref":"refs/heads/main","pushedAt":"2024-05-11T09:44:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"improve http request handling for internal services and multiple domains\n\nper listener, you could enable the admin/account/webmail/webapi handlers. but\nthat would serve those services on their configured paths (/admin/, /,\n/webmail/, /webapi/) on all domains mox would be webserving, including any\nnon-mail domains. so your www.example/admin/ would be serving the admin web\ninterface, with no way to disabled that.\n\nwith this change, the admin interface is only served on requests to (based on\nHost header):\n- ip addresses\n- the listener host name (explicitly configured in the listener, with fallback\n to global hostname)\n- \"localhost\" (for ssh tunnel/forwarding scenario's)\n\nthe account/webmail/webapi interfaces are served on the same domains as the\nadmin interface, and additionally:\n- the client settings domains, as optionally configured in each Domain in\n domains.conf. typically \"mail.\".\n\nthis means the internal services are no longer served on other domains\nconfigured in the webserver, e.g. www.example.org/admin/ will not be handled\nspecially.\n\nthe order of evaluation of routes/services is also changed:\nbefore this change, the internal handlers would always be evaluated first.\nwith this change, only the system handlers for\nMTA-STS/autoconfig/ACME-validation will be evaluated first. then the webserver\nhandlers. and finally the internal services (admin/account/webmail/webapi).\nthis allows an admin to configure overrides for some of the domains (per\nhostname-matching rules explained above) that would normally serve these\nservices.\n\nwebserver handlers can now be configured that pass the request to an internal\nservice: in addition to the existing static/redirect/forward config options,\nthere is now an \"internal\" config option, naming the service\n(admin/account/webmail/webapi) for handling the request. this allows enabling\nthe internal services on custom domains.\n\nfor issue #160 by TragicLifeHu, thanks for reporting!","shortMessageHtmlLink":"improve http request handling for internal services and multiple domains"}},{"before":"3e4cce826e13d07adf571f5dab73c2b1d7546afd","after":"9152384fd317e9baacaaf707acee95540af096d6","ref":"refs/heads/main","pushedAt":"2024-05-10T14:00:06.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"use debug logging in tests\n\nby setting the loglevel to debug in package mlog.\nwe restore the \"info\" logging in main.\nexcept for \"mox localserve\", which still sets debug by default.","shortMessageHtmlLink":"use debug logging in tests"}},{"before":"1fc8f165f75ee54fa7cb25fc9becdde59b8b0345","after":"3e4cce826e13d07adf571f5dab73c2b1d7546afd","ref":"refs/heads/main","pushedAt":"2024-05-09T20:52:44.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"mjl-","name":"Mechiel Lukkien","path":"/mjl-","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1684740?s=80&v=4"},"commit":{"message":"webaccount: change xcheckf to handle mox.ErrConfig as user error\n\nlike in webadmin","shortMessageHtmlLink":"webaccount: change xcheckf to handle mox.ErrConfig as user error"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xNVQxNToyMzoxMS4wMDAwMDBazwAAAAS2vqKy","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xNVQxNToyMzoxMS4wMDAwMDBazwAAAAS2vqKy","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0wOVQyMDo1Mjo0NC4wMDAwMDBazwAAAARF_6aV"}},"title":"Activity · mjl-/mox"}