/tutta

Mirror for https://gitlab.com/charlag/tutta

Primary LanguageKotlinGNU General Public License v3.0GPL-3.0

Unnamed Tutanota client(s)

This is a number unofficial mail client for encrypted service Tutanota.

  • Android client
  • Desktop translator/bridge from Tutanota API to IMAP/SMTP

Current state

Currently it's alpha-quality so use at your own risk. It may eat your glue and steal your dog. There is no support from Tutanota team and no one guarantees your safety when using this.

The project started as a Kotlin Multiplatform experiment but quickly focused on Android client initially. JS/web project was abandoned because of the poor tooling. It was fixed since then and it's possible to start with it again.

Bridge has some basic viewing of emails and sending of plain emails. No support for attachments or operations (like move, read) yet. Has some kind of offline cache.

Goals for Android

Goals:

  • see how far we can get with low effort
  • be a nice-looking, well-behaved native app
  • be secure and try to avoid executing Javascript
  • have offline caching

Non-goals:

  • implement all the Tutanota web client features
  • implement all apps inside Tutanota (e.g. Calendar)

Current state proves that with limited feature set it is feasible to build a native client.

TODO for Android

  • Login
  • Login with TOTP
  • Saving password with biometrics
  • Viewing mails
  • External content blocking
  • Downloading files
  • Viewing mails offline
  • Simple mail search
  • Moving/deleting mails
  • Marking mails as read/unread, manually and automatically
  • Contact list
  • Writing emails
  • Sending files
  • Replying to emails
  • Replying including content
  • Sending mails in background
  • Saving drafts
  • Contact autocomplete from Tutanota
  • Mail counters
  • Some real-time updates (mail/counter/contact/folder)
  • Forwarding mails
  • Notifications
  • Login experience improvements
  • Icon and name
  • Editing drafts
  • Permanently deleting mails
  • Remembering external content exceptions
  • Mail swipe actions
  • Displaying contact details
  • Additional mail details (recipients, sender, date)
  • Warnings for technical sender
  • Updating permissions
  • Websocket connection follows screen activity
  • Dependency injection
  • Multi-user support
  • Saving password without biometrics
  • Prevent loading unnecessary events on initial sync
  • Inbox rules
  • Contact autocomplete from system
  • Viewing inline images
  • "Secure external" mails
  • Replying inline
  • Mail intent handling
  • Settings
  • Mail threads
  • Full-text search
  • Sharing contacts with system?
  • UI can be reused with different backends?

TODO for bridge

  • Support for Linux
  • Support for macOS
  • Support for Windows
  • Loading of emails and bodies
  • Loading files
  • Sending files
  • Different folders
  • Subfolders
  • Creating folders
  • Sync (initial, after startup, scheduled)
  • Realtime sync via websockets (blocked by ws support on native)
  • Sending encrypted
  • Sending unencrypted
  • All recipient fields
  • Sending attachments
  • Marking as read/unread
  • Moving mails
  • Storing credentials in keychain
  • Reading/writing to sockets async

License

GPL-3.0-or-later of course