Skip to content
Alexey Sviridov Industrial Operations • Software • Better Decisions
  • Home
  • Projects
  • About
  • Blog
  • Gallery
EN|RU
  • Home
  • Projects
  • About
  • Blog
  • Gallery
EN|RU
Home/Projects/EmailMessenger

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.

View on GitHub Download Latest Release
Three EmailMessenger Android screens showing chats, welcome and PIN confirmation

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

  1. 01EmailMessenger Android appMessage composed on the device
  2. 02MLS encryptionApplication-layer content protection
  3. 03Encrypted payloadPackaged for email transport
  4. 04Yandex Mail SMTP / IMAPExisting mail infrastructure
  5. 05Payload receivedProtected content reaches the recipient
  6. 06MLS decryptionContent opened in EmailMessenger
  7. 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

EmailMessenger dialog displaying four verification words
  1. 01Enter the contact email.
  2. 02EmailMessenger creates an invitation.
  3. 03Four random words are displayed.
  4. 04Transfer the words separately, such as in person or by phone.
  5. 05The recipient enters the words.
  6. 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.
EmailMessenger direct chat showing two text messages

Attachments

  • One image or file per message
  • Up to 15 MB
  • Optional caption
  • Attachment content is encrypted and associated with the protected MLS message.

Local device protection

EmailMessenger four-digit PIN creation screen

4-digit PINProtects access to the application on this device.

Android KeystoreDevice-backed key protection.

Local protected storageEncrypted storage for application data.

iPrivate MLS state and private keys are not exposed to the JavaScript application layer.

Technology

Android-first messaging with a Rust cryptographic core

React

React NativeBare-workflow mobile application framework

TypeScript

TypeScript / ReactUser interface and application logic

Kotlin

Kotlin / Android SDKPlatform integration, lifecycle, storage, mail and notifications

Rust

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

MLS
RFC 9420
X25519
AES-128-GCM
SHA-256
Ed25519

iThe 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.

Explore other projects

Other solutions for industrial operations and business processes.

Market Price AnalysisAnalyse supplier quotations and compare market prices.→ Client Interaction CRMKeep companies, contacts and interaction history in one place.→ NeftegazmashCorporate website for an industrial equipment manufacturer.→
  • Home
  • Projects
  • About
  • Blog
  • Gallery
EN|RU

© 2026 Alexey Sviridov