Private family project
EmailMessenger
A private family messenger that uses email as its transport.
Actively tested MVP · Android
EmailMessenger uses Yandex Mail SMTP/IMAP as transport for application-layer protected message content, without an application-owned messaging server or app-owned cloud message-history backend.

RoleIndependent family project
PlatformAndroid
StatusActively tested MVP
ArchitectureMLS over SMTP / IMAP
Why I built it
A private communication path over infrastructure that remains available
EmailMessenger began as a practical family communication project: an Android messenger that uses existing email infrastructure while protecting message content at the application layer.
How it works
Encrypted application payload transported by email
- 01EmailMessenger Android appMessage composed on the device
- 02MLS encryptionApplication-layer content protection
- 03Encrypted payloadPackaged for email transport
- 04Yandex Mail SMTP / IMAPExisting mail infrastructure
- 05Payload receivedProtected content reaches the recipient
- 06MLS decryptionContent opened in EmailMessenger
- 07EmailMessenger Android appMessage shown to the recipient
No application-owned messaging serverThe app also has no app-owned cloud message-history backend.
External mail transport remains involvedYandex Mail carries the protected application payload through SMTP and IMAP.
Metadata limitation: mail-provider metadata such as sender, recipient, time and message size remains visible to the provider. The provider cannot read message or attachment content in plaintext.
Verify a contact outside the email channel
Four-word out-of-band verification

- 01Enter the contact email.
- 02EmailMessenger creates an invitation.
- 03Four random words are displayed.
- 04Transfer the words separately, such as in person or by phone.
- 05The recipient enters the words.
- 06OPAQUE verifies the secret before the protected connection is finalized.
- The four words are not sent through email.
- Invitation lifetime: 24 hours.
- Three incorrect attempts invalidate the verification attempt.
User confirmation is required; trust is not automatic.
End-to-end encrypted direct chats
Each direct chat is represented internally as a two-member MLS group, providing application-layer end-to-end encryption for message content between the two users. Group messaging is not currently supported.
- Text messagesSend and receive text messages.
- EmojiSupport for emoji in messages.
- Multiline messagesWrite longer messages across multiple lines.
- Local historyConversation history is stored locally on the device.
- Unread stateTrack unread messages in the chat list.
- Retry after errorsAutomatic retry when transmission fails.
- Duplicate protectionPrevent duplicate message delivery.
- Neutral notificationsNotifications do not show sender name or message content.

Technology
Android-first messaging with a Rust cryptographic core
React NativeBare-workflow mobile application framework
TypeScript / ReactUser interface and application logic
Kotlin / Android SDKPlatform integration, lifecycle, storage, mail and notifications
RustSecurity-sensitive cryptographic core
OpenMLSMLS state and protected direct messaging based on RFC 9420
OPAQUEFour-word invitation secret verification and identity binding
Android KeystorePlatform-backed non-exportable key protection
WorkManagerBest-effort background processing and encrypted locked staging
IMAP / SMTPYandex Mail transport for receiving and sending
Cryptographic profile
RFC 9420
The design provides application-layer end-to-end encryption for message content. Email metadata is outside that protection.
Current scope
Available now
- Android
- Direct contacts
- Text and emoji
- One photo or file attachment up to 15 MB
- Local history
- PIN protection
- Invitation verification
- Profile name and avatar
Not yet
- Groups
- iOS / desktop / web
- Multiple accounts or multiple devices
- Backup / restore
- Search
- Read receipts
- Reactions / editing / forwarding / quoting
Built and tested through real use
EmailMessenger is an actively tested MVP on real Android devices. It remains under active development and is not presented as production-complete.

