Convert Figma logo to code with AI

M66B logoFairEmail

Fully featured, open source, privacy friendly email app for Android

3,026
641
3,026
3

Top Related Projects

Proton Mail Android app

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

Thunderbird for Android – Open Source Email App for Android (fka K-9 Mail)

:love_letter: A beautiful, fast and fully open source mail client for Mac, Windows and Linux.

A third-party, open-source ProtonMail CardDAV, IMAP and SMTP bridge

Quick Overview

FairEmail is a fully featured, open source, privacy-friendly email app for Android. It offers a wide range of features while focusing on security, privacy, and battery efficiency. FairEmail supports unlimited accounts and email addresses with unified inbox functionality.

Pros

  • Strong focus on privacy and security (e.g., OpenPGP support, no tracking)
  • Feature-rich with advanced options for power users
  • Regular updates and active development
  • Open-source and ad-free

Cons

  • Learning curve for new users due to extensive features
  • UI may not be as polished as some commercial email apps
  • Some features require a pro license (though core functionality is free)
  • May be overwhelming for users seeking a simple email client

Getting Started

To get started with FairEmail:

  1. Download FairEmail from the Google Play Store or F-Droid.
  2. Open the app and follow the setup wizard to add your email account(s).
  3. Configure your preferences in the Settings menu.
  4. Explore additional features like message rules, identities, and search filters.

For developers interested in contributing:

  1. Fork the GitHub repository: https://github.com/M66B/FairEmail
  2. Clone your fork: git clone https://github.com/yourusername/FairEmail.git
  3. Set up the project in Android Studio.
  4. Make your changes and submit a pull request.

Competitor Comparisons

Proton Mail Android app

Pros of proton-mail-android

  • Built-in end-to-end encryption for enhanced security
  • Seamless integration with ProtonMail's ecosystem
  • Regular updates and active development from a dedicated team

Cons of proton-mail-android

  • Limited to ProtonMail accounts only
  • Less customizable compared to FairEmail
  • Closed-source, which may raise privacy concerns for some users

Code Comparison

FairEmail:

private void handleThreadState(EntityMessage message, JSONObject thread) throws JSONException {
    boolean thread_expanded = thread.optBoolean("expanded", true);
    boolean thread_visible = thread.optBoolean("visible", true);
    boolean thread_ignored = thread.optBoolean("ignored", false);
    DB.getInstance(context).message().setMessageThreadState(
            message.id, thread_expanded, thread_visible, thread_ignored);
}

proton-mail-android:

private fun handleMessageState(message: Message, state: MessageState) {
    when (state) {
        is MessageState.Read -> markMessageAsRead(message)
        is MessageState.Unread -> markMessageAsUnread(message)
        is MessageState.Starred -> starMessage(message)
        is MessageState.Unstarred -> unstarMessage(message)
    }
}

The code snippets show different approaches to handling message states. FairEmail uses a more detailed thread state management, while proton-mail-android employs a Kotlin-based state pattern for individual messages.

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

Pros of Tutanota

  • End-to-end encryption for emails, contacts, and calendars
  • Cross-platform support (web, desktop, and mobile apps)
  • Open-source with a focus on privacy and security

Cons of Tutanota

  • Limited customization options compared to FairEmail
  • Fewer advanced features for power users
  • Closed ecosystem (can't use third-party email clients)

Code Comparison

Tutanota (TypeScript):

export function createMailAddress(address: string): MailAddress {
  const parts = address.split('@')
  return {
    address: address.trim().toLowerCase(),
    name: null,
    contact: null,
    type: null,
    mailAddress: parts[0],
    domain: parts[1],
  }
}

FairEmail (Java):

public static Address[] parseAddresses(Context context, String addresses) {
    List<Address> result = new ArrayList<>();
    for (String address : addresses.split(",")) {
        try {
            result.add(new InternetAddress(address.trim()));
        } catch (AddressException ex) {
            Log.w(ex);
        }
    }
    return result.toArray(new Address[0]);
}

Both repositories focus on email functionality, but Tutanota emphasizes encryption and privacy, while FairEmail offers more customization and advanced features for Android users. The code snippets show different approaches to handling email addresses, with Tutanota using TypeScript and FairEmail using Java.

Thunderbird for Android – Open Source Email App for Android (fka K-9 Mail)

Pros of Thunderbird

  • Backed by Mozilla Foundation, ensuring long-term support and development
  • Integrates seamlessly with desktop Thunderbird, providing a unified experience
  • Offers a more familiar interface for users transitioning from desktop email clients

Cons of Thunderbird

  • Less frequent updates compared to FairEmail
  • Larger app size and potentially higher resource usage
  • Fewer advanced privacy features than FairEmail

Code Comparison

FairEmail:

private void processMessage(EntityMessage message) {
    try {
        DB db = DB.getInstance(context);
        EntityFolder folder = db.folder().getFolder(message.folder);
        if (folder == null)
            return;
        // ... (additional processing logic)
    } catch (Throwable ex) {
        Log.e(ex);
    }
}

Thunderbird:

private fun processMessage(message: Message) {
    try {
        val folder = accountManager.getFolder(message.folderId)
        if (folder == null) {
            Log.w(TAG, "Folder not found for message ${message.id}")
            return
        }
        // ... (additional processing logic)
    } catch (e: Exception) {
        Log.e(TAG, "Error processing message", e)
    }
}

Both projects handle message processing, but FairEmail uses Java while Thunderbird uses Kotlin. Thunderbird's code appears more concise due to Kotlin's features, while FairEmail's Java code is more verbose but potentially more familiar to some developers.

:love_letter: A beautiful, fast and fully open source mail client for Mac, Windows and Linux.

Pros of Mailspring

  • Cross-platform support (Windows, macOS, Linux)
  • Modern, user-friendly interface with customizable themes
  • Advanced features like mail merge and send later

Cons of Mailspring

  • Closed-source core, limiting community contributions
  • Requires Mailspring ID for some features
  • Higher system resource usage

Code Comparison

Mailspring (JavaScript):

export function sendLater(draft, sendAt) {
  return DatabaseStore.inTransaction(t => {
    draft.metadataForPluginId('send-later').sendAt = sendAt;
    return t.persistModel(draft);
  });
}

FairEmail (Java):

private void onActionSendLater(long id, long when) {
    Bundle args = new Bundle();
    args.putLong("id", id);
    args.putLong("when", when);
    new SimpleTask<Void>() {
        @Override
        protected Void onExecute(Context context, Bundle args) {
            long id = args.getLong("id");
            long when = args.getLong("when");
            DB.getInstance(context).message().setMessageSnoozed(id, when);
            return null;
        }
    }.execute(this, args, "message:snooze");
}

The code snippets show different approaches to implementing a "send later" feature. Mailspring uses JavaScript and a transaction-based approach, while FairEmail uses Java and a task-based system for scheduling messages.

A third-party, open-source ProtonMail CardDAV, IMAP and SMTP bridge

Pros of hydroxide

  • Lightweight and focused on providing a bridge for ProtonMail
  • Command-line interface offers flexibility for advanced users
  • Can be used as a backend for other email clients

Cons of hydroxide

  • Limited to ProtonMail, not a full-featured email client
  • Requires more technical knowledge to set up and use
  • Less user-friendly for non-technical users

Code comparison

FairEmail (Java):

public class EmailProvider {
    private String name;
    private String domain;
    // ...
}

hydroxide (Go):

type Bridge struct {
    pm       *protonmail.Client
    tlsCache *tlsCache
    // ...
}

Key differences

FairEmail is a full-featured Android email client with a graphical user interface, supporting multiple email providers. It focuses on privacy, security, and open-source development.

hydroxide is a ProtonMail bridge that allows using ProtonMail with any IMAP/SMTP client. It's a command-line tool primarily designed for technical users who want to integrate ProtonMail with their existing email setup.

While FairEmail provides a complete email experience for Android users, hydroxide serves as a backend tool for accessing ProtonMail through other email clients. The choice between them depends on the user's specific needs, technical expertise, and preferred email provider.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

DownloadsPrivacySupportLicense

Provided by FairCode B.V.

FairEmail

GitHub GitHub release GitHub commits since tagged version

Fully featured, open source, privacy oriented email app for Android

FairEmail is easy to set up and works with virtually all email providers, including Gmail, Outlook and Yahoo!

FairEmail might be for you if you value your privacy.

FairEmail is an email client only, so you need to bring your own email address.

FairEmail does not support non-standard protocols, like Microsoft Exchange Web Services and Microsoft ActiveSync.

Main features

  • Fully featured
  • 100% open source
  • Privacy oriented
  • Unlimited accounts
  • Unlimited email addresses
  • Unified inbox (optionally accounts or folders)
  • Conversation threading
  • Two way synchronization
  • Push notifications
  • Offline storage and operations
  • Common text style options (size, color, lists, etc)
  • Battery friendly
  • Low data usage
  • Small (<30 MB)
  • Material design (including dark/black theme)
  • Maintained and supported

This app is deliberately minimalistic by design, so you can concentrate on reading and writing messages.

This app starts a foreground service with a low-priority status bar notification to make sure you'll never miss new emails.

Privacy features

  • Encryption/decryption supported (OpenPGP and S/MIME)
  • Reformat messages to prevent phishing
  • Confirm showing images to prevent tracking
  • Confirm opening links to prevent tracking and phishing
  • Attempt to recognize and disable tracking images
  • Warning if messages could not be authenticated

Simple

  • Quick setup
  • Easy navigation
  • No bells and whistles
  • No distracting "eye candy"

Secure

  • No data storage on third-party servers
  • Using open standards (IMAP, POP3, SMTP, OpenPGP, S/MIME, etc.)
  • Safe message view (styling, scripting and unsafe HTML removed)
  • Confirm opening links, images and attachments
  • No special permissions required
  • No advertisements
  • No analytics and no tracking (error reporting via Bugsnag is opt-in)
  • Optional Android backup
  • No Firebase Cloud Messaging
  • FairEmail is an original work, not a fork or a clone

Efficient

  • Fast and lightweight
  • IMAP IDLE (push messages) supported
  • Built with latest development tools and libraries

Pro features

All pro features are convenience or advanced features.

  • Account/identity/folder colors/avatars
  • Colored stars (instructions)
  • Notification settings (sounds) per account/folder/sender (requires Android 8 Oreo) (instructions)
  • Configurable notification actions
  • Snooze messages (instructions)
  • Send messages after selected time
  • Synchronization scheduling (instructions)
  • Reply templates (instructions)
  • Accept/decline calendar invitations
  • Add message to calendar
  • Automatically generate vCard attachments
  • Filter rules (instructions)
  • Automatic message classification (instructions)
  • Search indexing (instructions)
  • S/MIME sign/encrypt (instructions)
  • Biometric/PIN authentication (instructions)
  • Message list widget
  • Export settings

Screenshots

Please see here for screenshots.

Downloads

Supported download locations:

Please see this FAQ about the differences between the different releases.

Important: after enrolling in the Advanced Protection Program you cannot use third party email apps anymore, please see this FAQ for more information.

To download a GitHub release you might need to expand the assets section to download the APK file.

The GitHub version is being updated more often than the Play store version. The GitHub release will automatically check for updates on GitHub (this can be turned off in the miscellaneous settings).

F-Droid builds new versions irregularly and you'll need the F-Droid client to get update notifications. To get updates in a timely fashion you are advised to use the GitHub release.

Important: There is support on the F-Droid build only if the version number of the F-Droid build is the same as the version number of the latest GitHub release. Please see here for more information on third-party builds.

Because F-Droid builds and GitHub releases are signed differently, an F-Droid build needs to be uninstalled first to be able to update to a GitHub release.

The best way to verify the integrity of an APK file is documented here.

Certificate fingerprints:

MD5: 64:90:8E:2C:0D:25:29:B0:D0:26:2D:24:D8:BB:66:56
SHA1: 17:BA:15:C1:AF:55:D9:25:F9:8B:99:CE:A4:37:5D:4C:DF:4C:17:4B
SHA256: E0:20:67:24:9F:5A:35:0E:0E:C7:03:FE:9D:F4:DD:68:2E:02:91:A0:9F:0C:2E:04:10:50:BB:E7:C0:64:F5:C9

One line command to display certificate fingerprints:

unzip -p fairemail.apk META-INF/CERT.RSA | keytool -printcert

I do not hand over the signing keys of my apps to Google. Please see this Google blog and this article for more information.

Compatibility

FairEmail requires at least Android 5 Lollipop.

FairEmail is supported on smartphones and tablets only, and for example not on E Ink devices.

Individual message notifications are available on Android 7 Nougat and later only because earlier Android versions do not support notification grouping.

Notification settings (sounds) per account/folder/sender are available on Android 8 Oreo and later only because earlier Android versions do not support notification channels.

FairEmail will work properly on devices without any Google service installed.

Please see here for known problems.

Privacy

Please see here for the privacy policy.

Support

Please see here for a list of often asked questions and about how to get support.

Contributing

Documentation

Contributions to this document and the frequently asked questions are preferred in the form of pull requests.

Translations

  • You can translate the in-app texts of FairEmail on Crowdin
  • If your language is not listed, please send a message through this contact form

Source code

Building FairEmail from source code is straightforward with Android Studio. It is expected that you can solve build problems yourself, so there is no support on building.

Source code contributions are preferred in the form of pull requests. Please contact me first to tell me what your plans are.

Please note that by contributing you agree to the license below, including the copyright, without any additional terms or conditions.

Attribution

See here for a list of used libraries and associated license information.

Online translations are supported by:

Crowdin logo

Error reporting is sponsored by:

Bugsnag logo

Bugsnag monitors application stability and is used to help improve FairEmail. Error reporting is disabled by default, see also the privacy policy.

License

Copyright © 2018-2024 Marcel Bokhorst. All rights reserved.

GNU General Public License version 3

FairEmail is free software: you can redistribute it and/or modify it 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.

FairEmail is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.