<feed xmlns='http://www.w3.org/2005/Atom'>
<title>meshbay.git/docs/MAIL-SERVER.md, branch main</title>
<subtitle>MeshBay — read-only public mirror</subtitle>
<id>https://git.meshbay.org/meshbay.git/atom?h=main</id>
<link rel='self' href='https://git.meshbay.org/meshbay.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/'/>
<updated>2026-09-24T08:49:14Z</updated>
<entry>
<title>docs(mail): route @meshbay.org mail to OVH, document the real setup</title>
<updated>2026-09-24T08:49:14Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-09-24T08:49:14Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=c30b3233c725fcd60feb4bec79230b434ef0f7f8'/>
<id>urn:sha1:c30b3233c725fcd60feb4bec79230b434ef0f7f8</id>
<content type='text'>
Mail to OVH redirections such as devel@meshbay.org never left the server:
Postfix listed meshbay.org in mydestination and delivered it locally, and
systemd-resolved answered MX queries for the hostname with an empty
authoritative reply. New §9 states both settings and how to check them.

§1 now shows the DNS records as deployed (IPv6, DKIM, DMARC quarantine,
PTR), §2 adds the IPv6 address to SPF and PTR, and §3 describes the
installation itself — packages, main.cf, DKIM key, OpenDKIM tables,
resolved drop-in — instead of pointing at a script outside the repository.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat: email verification for registration, email change, and invitations</title>
<updated>2026-08-31T15:19:17Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-31T15:19:17Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=c6fd7ea89b6e0a96eb1d81989de891b4768b1044'/>
<id>urn:sha1:c6fd7ea89b6e0a96eb1d81989de891b4768b1044</id>
<content type='text'>
Registration now creates a pending account and sends a 6-digit code via
email; the account activates only after verification. Email changes on
the profile page follow the same flow. Group invitations send a
notification email to the invitee (without revealing their address to
the inviter) containing the invite code and hub link.

Backend: blind HMAC-SHA256 email index for uniqueness without decryption,
mail.py for localhost Postfix delivery, verification endpoints, cleanup
of expired codes and stale pending accounts, startup backfill of
email_hash for existing users.

Frontend: 3-phase register page, inline email change verification on
profile, invite-notify call with status display. All 10 locales updated.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
