mirror of
https://github.com/suitenumerique/messages.git
synced 2026-09-23 18:25:01 +02:00
Local parts are ASCII-folded — never str.lower(), which maps U+212A onto "k" and would resolve a look-alike to someone else's mailbox — for everything we own or resolve: mailbox lookup, login identity, inbound recipients. Domains are IDNA-canonicalized. Addresses we merely carry, in contacts and MIME headers, keep the case they were typed or received in. core.mda.addresses is the single policy, held in place by a pylint checker and an eslint rule that ban hand-rolled '@' splits and Unicode case folding. Migration 0035 folds existing rows and reports the collisions it will not merge on its own. Also drops mta-out, and adds dual RSA+ECDSA certificates, per-refusal logging and an mta_session correlation claim to mta-in.