thunderbird-android
Thunderbird for Android – Open Source Email App for Android (fka K-9 Mail)
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):
- Download the app from the Google Play Store or F-Droid.
- Open the app and tap "Set up an account."
- Choose your email provider or select "Other" for manual setup.
- Enter your email address and password.
- Follow the on-screen instructions to complete the account setup.
- 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:
- Fork the repository on GitHub.
- Clone your fork:
git clone https://github.com/your-username/thunderbird-android.git
- Set up the development environment following the instructions in the project's README.
- 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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Thunderbird for Android
Thunderbird for Android is a powerful, privacy-focused email app. Effortlessly manage multiple email accounts from one app, with a Unified Inbox option for maximum productivity. Built on open-source technology and supported by a dedicated team of developers alongside a global community of volunteers, Thunderbird never treats your private data as a product.
Thunderbird for Android is based on K-9 Mail, which comes with a rich history of success and functionality in open source email.
Download
Thunderbird for Android can be downloaded from a couple of sources:
- Thunderbird on Google Play or F-Droid
- Thunderbird Beta on Google Play or F-Droid
- Github Releases
- FFUpdater allows installing the latest versions from ftp.mozilla.org
By using Thunderbird for Android Beta, you have early access to current development and are able to try new features earlier.
Check out the Release Notes to find out what changed in each version of Thunderbird for Android.
Need Help? Found a bug? Have an idea? Want to chat?
If the app is not behaving like it should, or you are not sure if you've encountered a bug:
- Check out our knowledge base and frequently asked questions
- Ask a question on our support forum
If you are certain you've identified a bug in Thunderbird for Android and would like to help fix it:
- File an issue on our GitHub issue tracker
If you have an idea how to improve Thunderbird for Android:
- Tell us about and vote on your feature ideas on connect.mozilla.org.
- Join the discussion about the latest changes in the Thunderbird Android Beta Topicbox.
The Thunderbird Community uses Matrix to communicate:
- General chat about Thunderbird for Android and K-9 Mail: #tb-android:mozilla.org
- Development and other ways to contribute: #tb-android-dev:mozilla.org
- Reach the broader Thunderbird Community in the community space
Contributing
We welcome contributions from everyone.
- Development: Have you done a little bit of Kotlin? The CONTRIBUTING guide will help you get started
- Translations: Do you speak a language aside from English? Translating is easy and just takes a few minutes for your first success.
- We have a number of other contribution opportunities available.
- Thunderbird is supported solely by financial contributions from users like you.Make a financial contribution today!
- Make sure to check out the Mozilla Community Participation Guidelines.
Architecture Decision Records (ADR)
We use Architecture Decision Records to document the architectural decisions made in the
development of Thunderbird for Android. 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.
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.
You can report a security vulnerability through the respective issues form.
These are the SHA-256 fingerprints for our signing certificates:
- Thunderbird:
B6:52:47:79:B3:DB:BC:5A:C1:7A:5A:C2:71:DD:B2:9D:CF:BF:72:35:78:C2:38:E0:3C:3C:21:78:11:35:6D:D1
- Thunderbird Beta:
05:6B:FA:FB:45:02:49:50:2F:D9:22:62:28:70:4C:25:29:E1:B8:22:DA:06:76:0D:47:A8:5C:95:57:74:1F:BD
- K-9 Mail:
55:C8:A5:23:B9:73:35:F5:BF:60:DF:E8:A9:F3:E1:DD:E7:44:51:6D:93:57:E8:0A:92:5B:7B:22:E4:F5:55:24
You can use the following command to retrieve and verify the certificate before installation:
apksigner verify -v --print-certs <path-to-apk>
K-9 Mail
In June 2022, K-9 Mail joined the Thunderbird family as the foundation for Thunderbird on Android. Since then, weâve been updating both apps to give users the same solid experience, so itâs normal to notice that K-9 Mail and Thunderbird look and feel nearly identical. Theyâre built on the same code, and thatâs intentional. You'll notice some features are selectively enabled for Thunderbird as opposed to K-9 Mail, usually when they are simply a better fit for Thunderbird (like the import from K-9 functionality).
If you prefer the robot dog and would like to keep K-9 Mail around, you can find it here:
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.
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.
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.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot