ProtonMail for macOS - Experimental email client for the ProtonMail service written in Swift

Overview

ProtonMail for macOS

Experimental email client for the ProtonMail service written in Swift.

Hero

About

A pet project, largely incomplete and missing major features. Could be used for reading emails at best at the moment.

What's working?

  1. User authentication (via ProtonMail's web service)
  2. Loading conversations and messages (including inline attachments or remote content)
  3. Loading custom folders and labels
  4. Navigating between folders and labels
  5. Applying labels, moving conversations and messages between folders
  6. Starring conversations and messages
  7. Paging, sort of

What's missing?

  1. Composer (sending emails)
  2. Search
  3. Downloading attachments
  4. Updating "read" status without opening the message
  5. Deleting messages
  6. Editing custom folders and labels
  7. App lock?
  8. Menu bar items
  9. User preferences
  10. Continuous mailbox scroll should be preferred over paging
  11. Support for macOS Catalina?
  12. Tests, tests, tests
  13. Loads of other QoL features

Architecture

Clean Swift (variation of VIPER) with three major scenes: sidebar, mailbox and details. Built using AppKit and Auto Layout. The app uses the standard NSSplitViewController with three items to build the common email client interface.

Arch

Contributions

ProtonMail has announced plans for releasing their own desktop client at some point in 2022 so it's unlikely this project is going to amount to anything. If you still feel like contributing to a project like this you are certainly welcome to do so!

License

The code and data files in this distribution are licensed under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See https://www.gnu.org/licenses/ for a copy of this license.

Uses software developed by ProtonMail.

You might also like...
Vapor-telemetrydeck - Vapor client for posting signals to TelemetryDeck, a privacy-conscious analytics service for apps and websites

Vapor-telemetrydeck - Vapor client for posting signals to TelemetryDeck, a privacy-conscious analytics service for apps and websites

Fancy Swift implementation of the Visual Format Language (experimental and doesn't work with the recent version of Swift)
Fancy Swift implementation of the Visual Format Language (experimental and doesn't work with the recent version of Swift)

VFLToolbox Autolayout is awesome! VFL a.k.a Visual Format Language is even more awesome because it allows you to shorten constraints setting code. The

Postal is a swift framework providing simple access to common email providers.
Postal is a swift framework providing simple access to common email providers.

Postal is a swift framework providing simple access to common email providers. Example Connect let postal = Postal(configuration: .icloud(login: "myem

Email Validation Example With Swift

EmailValidation Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements Installation Em

SwiftEmailValidator - A Swift implementation of an international email address syntax validator based on RFC5321 & RFC5322

SwiftEmailValidator A Swift implementation of an international email address syn

Send email to any SMTP server like a boss, in Swift and cross-platform
Send email to any SMTP server like a boss, in Swift and cross-platform

Hedwig is a Swift package which supplies a set of high level APIs to allow you sending email to an SMTP server easily. If you are planning to send ema

An experimental functional programming language with dependent types, inspired by Swift and Idris.

Kara An experimental functional programming language with dependent types, inspired by Swift and Idris. Motivation Development of Kara is motivated by

(Experimental libraries) Controls interrupt handling, such as alert views, and is compatible with UIKit and Swift UI.
(Experimental libraries) Controls interrupt handling, such as alert views, and is compatible with UIKit and Swift UI.

UIPresentCoordinator Controls interrupt handling, such as alert views, and is compatible with UIKit and Swift UI. This library manages items that are

An early experimental general-purpose pattern matching engine for Swift.

Declarative String Processing for Swift An early experimental general-purpose pattern matching engine for Swift. See Declarative String Processing Ove

LoginKit is a quick and easy way to add Facebook and email Login/Signup UI to your app.
LoginKit is a quick and easy way to add Facebook and email Login/Signup UI to your app.

LoginKit About LoginKit is a quick and easy way to add Facebook and email Login/Signup UI to your app. If you need to quickly prototype an app, create

Email-based instant messaging for iOS.
Email-based instant messaging for iOS.

deltachat-ios Email-based instant messaging for iOS. Testing Betas are distributed via Testflight. Just scan this QR code with the camera app of your

UI-элемент Поле для ввода кода подтверждения из смс или email
UI-элемент Поле для ввода кода подтверждения из смс или email

SWCodeField SWCodeField - простое поле для ввода кода подтверждения из смс или email с возможность изменения количества элементов. UI-элемент основан

Cordova Email Plugin
Cordova Email Plugin

Forked to fix Android 11 problems – No future support! SAMPLE APP 👉 Cordova Email Plugin The plugin provides access to the standard interface that ma

Unified API Library for: Cloud Storage, Social Log-In, Social Interaction, Payment, Email, SMS, POIs, Video & Messaging.
Unified API Library for: Cloud Storage, Social Log-In, Social Interaction, Payment, Email, SMS, POIs, Video & Messaging.

Unified API Library for: Cloud Storage, Social Log-In, Social Interaction, Payment, Email, SMS, POIs, Video & Messaging. Included services are Dropbox, Google Drive, OneDrive, OneDrive for Business, Box, Egnyte, PayPal, Stripe, Google Places, Foursquare, Yelp, YouTube, Vimeo, Twitch, Facebook Messenger, Telegram, Line, Viber, Facebook, GitHub, Google+, LinkedIn, Slack, Twitter, Windows Live, Yahoo, Mailjet, Sendgrid, Twilio, Nexmo, Twizo.

Log messages to text files and share them by email or other way.
Log messages to text files and share them by email or other way.

LogToFiles How to log messages to text files and share them by email or share center. 1 - Add the Log.swift file to your App 2 - Just log the messages

The fastest iOS app to add a note to your email inbox
The fastest iOS app to add a note to your email inbox

Major Key How often are you on the run, or hanging out with friends, only to suddenly think of this really important thing you need to do when you're

A SwiftUI component to make handling of email links better.

EmailLink A SwiftUI component to make handling of email links better. Not only will EmailLink use the correct default client, it will also prompt the

Experimental SwiftUI build of the iOS app switcher

SwiftUI - iOS App Switcher This project is an approximation of the iOS app switcher UI experience, built with SwiftUI. The following interactions are

Beers is a simple experimental app implemented using the new amazing SwiftUI.
Beers is a simple experimental app implemented using the new amazing SwiftUI.

Beers is a simple experimental app implemented using the new amazing SwiftUI. The app shows a list of beers fetched from Punk API

Comments
  • write a Build guide for mac users

    write a Build guide for mac users

    hi, first of all i find your project very amazing and would like to test it out. sadly, i am not well versed in Swift, Xcode, and building programs and would need some help there.

    Maybe you could write up a guide for newbies how to build the project ourselves? or even publish a binary for it, if that is not to much overkill.

    Thanks a lot for your help :)

    opened by skriptum 5
Releases(0.1)
Owner
Marcel Piestansky
Marcel Piestansky
Cordova Email Plugin

Forked to fix Android 11 problems – No future support! SAMPLE APP ?? Cordova Email Plugin The plugin provides access to the standard interface that ma

null 0 Oct 22, 2021
SwiftyEmail - A super simple Swift e-mail composer package

SwiftyEmail is a mini library for iOS, iPadOS and Mac Catalyst using MessageUI. With SwiftyEmail, you'll be able to send e-mails from your app calling your user's favorite e-mail app (including third party ones!).

Marcos Morais 5 Nov 20, 2022
iOS-mail — ProtonMail iOS client app

iOS-mail Introduction iOS-mail — ProtonMail iOS client app The app is intended for all users of the ProtonMail service. Whether they are paid or free,

null 1.2k Jan 3, 2023
Tutanota is an email service with a strong focus on security and privacy that lets you encrypt emails, contacts and calendar entries on all your devices.

Tutanota makes encryption easy Tutanota is the secure email service with built-in end-to-end encryption that enables you to communicate securely with

Tutao GmbH 5k Dec 26, 2022
Approov-service-ios-swift-grpc - Approov service layer for iOS clients using GRPC

Approov Service for GRPC A wrapper for the Approov SDK to enable easy integratio

Approov Integration Examples 0 Jan 21, 2022
CloudKit, Apple’s remote data storage service, provides a possibility to store app data using users’ iCloud accounts as a back-end storage service.

CloudKit, Apple’s remote data storage service, provides a possibility to store app data using users’ iCloud accounts as a back-end storage service. He

Yalantis 252 Nov 4, 2022
A highly experimental, self-custody Lightning wallet built to work for iOS and macOS.

Surge Surge is a highly experimental, self-custody Lightning wallet built to work for iOS and macOS. Motivation Tools and infrastructure for running a

Jurvis Tan 2 Oct 26, 2022
NewsAPISwift is a Swift client for News API V2, a service that provides breaking news headlines, and search for articles from over 30,000 news sources and blogs.

NewsAPISwift NewsAPISwift is a Swift client for News API V2, a service that provides breaking news headlines, and search for articles from over 30,000

Lucas Lima 22 Feb 10, 2022
TheraForge's Client REST API framework to connect to TheraForge's secure CloudBox Backend-as-a-Service (BaaS)

OTFCloudClientAPI TheraForge's Client REST API Framework to Connect to TheraForg

TheraForge 0 Dec 23, 2021
Keybase Go Library, Client, Service, OS X, iOS, Android, Electron

Keybase Hi, and welcome to the Keybase client repo. All our client apps (macOS, Windows, Linux, iOS, and Android) are being actively developed in this

Keybase 8.3k Dec 31, 2022