Convert Figma logo to code with AI

thunderbird logothunderbird-android

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

10,008
2,469
10,008
842

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.

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

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

Quick Overview

Thunderbird for Android (K-9 Mail) is an open-source email client for Android devices. It's a feature-rich application that supports multiple email accounts, offering advanced functionality and customization options for users who want more control over their email experience on mobile devices.

Pros

  • Open-source and actively maintained
  • Supports multiple email accounts and protocols (IMAP, POP3, Exchange)
  • Highly customizable with numerous settings and options
  • Strong focus on privacy and security

Cons

  • User interface can be complex for new users
  • Some users report occasional stability issues
  • Setup process can be challenging for less tech-savvy individuals
  • Limited built-in integration with third-party services compared to some competitors

Getting Started

To get started with Thunderbird for Android (K-9 Mail):

  1. Download the app from the Google Play Store or F-Droid.
  2. Open the app and tap "Set up an account."
  3. Choose your email provider or select "Other" for manual setup.
  4. Enter your email address and password.
  5. Follow the on-screen instructions to complete the account setup.
  6. Once set up, you can customize the app's settings by tapping the menu icon and selecting "Settings."

For developers interested in contributing to the project:

  1. Fork the repository on GitHub.
  2. Clone your fork: git clone https://github.com/your-username/thunderbird-android.git
  3. Set up the development environment following the instructions in the project's README.
  4. Make your changes and submit a pull request for review.

Competitor Comparisons

Proton Mail Android app

Pros of proton-mail-android

  • Enhanced privacy features, including end-to-end encryption
  • Sleek and modern user interface
  • Active development with frequent updates

Cons of proton-mail-android

  • Limited integration with third-party services
  • Smaller user base compared to Thunderbird
  • Fewer customization options for advanced users

Code Comparison

proton-mail-android:

class MailboxViewModel @Inject constructor(
    private val getMessagesUseCase: GetMessagesUseCase,
    private val deleteMessagesUseCase: DeleteMessagesUseCase
) : ViewModel() {
    // Implementation details
}

thunderbird-android:

public class MessageListFragment extends ListFragment
        implements LoaderManager.LoaderCallbacks<Cursor> {
    private MessageListAdapter adapter;
    private View footerView;
    // Implementation details
}

The proton-mail-android repository uses Kotlin and follows a more modern MVVM architecture with dependency injection. In contrast, thunderbird-android uses Java and follows a more traditional Android development approach with fragments and loaders.

Both projects aim to provide email functionality on Android devices, but they differ in their focus and implementation. Proton Mail prioritizes privacy and security, while Thunderbird offers a more familiar and customizable experience for users transitioning from the desktop version.

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

  • Fully open-source email client with a focus on end-to-end encryption
  • Includes a built-in calendar with encrypted events
  • Offers a more comprehensive privacy-focused solution

Cons of Tutanota

  • Limited integration with third-party email providers
  • Smaller user base and community compared to Thunderbird
  • Less customization options for email client appearance

Code Comparison

Tutanota (TypeScript):

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

Thunderbird Android (Kotlin):

fun createAddress(address: String): Address {
    val parts = address.split("@")
    return Address(
        email = address,
        personal = null,
        mailbox = parts.getOrNull(0) ?: "",
        domain = parts.getOrNull(1) ?: ""
    )
}

Both repositories implement email address parsing, but Tutanota's implementation includes additional fields for privacy and encryption purposes, while Thunderbird Android's approach is more straightforward and focused on basic email functionality.

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

Pros of FairEmail

  • More frequent updates and active development
  • Extensive privacy-focused features, including encryption support
  • Highly customizable with numerous settings and options

Cons of FairEmail

  • Steeper learning curve due to complex features and settings
  • Less polished user interface compared to Thunderbird Android

Code Comparison

FairEmail (Privacy-focused code snippet):

private void checkPushAuth() {
    boolean auth = prefs.getBoolean("push_auth", true);
    if (auth)
        startPushService();
    else
        stopPushService();
}

Thunderbird Android (UI-related code snippet):

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    binding = FragmentMessageListBinding.inflate(inflater, container, false)
    return binding.root
}

FairEmail focuses on privacy-related features, as seen in the push authentication check. Thunderbird Android's code snippet demonstrates a more straightforward UI implementation using view binding.

Both projects are open-source email clients for Android, but they cater to different user needs. FairEmail prioritizes privacy and customization, while Thunderbird Android aims for a more user-friendly experience with a familiar interface for desktop Thunderbird users.

: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) vs. Android-only for Thunderbird
  • Modern, sleek user interface with customizable themes
  • Advanced features like send later, read receipts, and link tracking

Cons of Mailspring

  • Closed-source core, with only the UI being open-source
  • Requires a Mailspring ID for some features, potentially raising privacy concerns
  • Less integration with other open-source ecosystems compared to Thunderbird

Code Comparison

Mailspring (JavaScript/React):

export default class ThreadListColumn extends React.Component {
  static displayName = 'ThreadListColumn';

  static propTypes = {
    threads: PropTypes.array,
    focusedThreadId: PropTypes.string,
  };

Thunderbird Android (Kotlin):

class MessageListAdapter(
    private val context: Context,
    private val messageClickListener: MessageClickListener,
    private val threadClickListener: ThreadClickListener
) : ListAdapter<MessageListItem, MessageViewHolder>(MessageListItemDiffCallback) {

Both projects use modern programming languages and frameworks, with Mailspring focusing on web technologies for cross-platform support, while Thunderbird Android uses native Android development with Kotlin.

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

K-9 Mail

Latest release Latest beta release

K-9 Mail is an open-source email client for Android.

Download

K-9 Mail can be downloaded from a couple of sources:

You might also be interested in becoming a tester to get an early look at new versions.

Release Notes

Check out the Release Notes to find out what changed in each version of K-9 Mail. For a more up to date list of changes, see the XML Changelog.

Need Help?

If the app is not behaving like it should, you might find these resources helpful:

Translations

Interested in helping to translate K-9 Mail? Contribute here:

Contributing

We welcome contributions from everyone. Please see the CONTRIBUTING guide for more information.

Forking

If you want to use a fork of this project please ensure that you replace the OAuth client setup in the app-k9mail/src/{debug,release}/kotlin/app/k9mail/auth/K9OAuthConfigurationFactory.kt and app-thunderbird/src/{debug,daily,beta,release}/kotlin/net/thunderbird/android/auth/TbOAuthConfigurationFactory.kt with your own OAuth client setup and ensure that the redirectUri is different to the one used in the main project. This is to prevent conflicts with the main app when both are installed on the same device.

Architecture Decision Records (ADR)

We use Architecture Decision Records to document the architectural decisions made in the development of K-9 Mail. You can find them in the docs/architecture/adr directory.

For more information about our ADRs, please see the ADRs README.

We encourage team members and contributors to read through our ADRs to understand the architectural decisions that have shaped this project so far. Feel free to propose new ADRs or suggest modifications to existing ones as needed.

Communication

Aside from discussing changes in pull requests and issues we use the following communication services:

Security

The code in this repository was undergoing an extensive security audit in collaboration with the Open Source Technology Improvement Fund (OSTIF) and 7ASecurity in the first half of 2023. For more details, see our blog post.

License

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.