Jekyll2026-02-20T08:39:22+01:00https://k9mail.app/feed.xmlK-9 MailK-9 Mail is an open source email client focused on making it easy to chew through large volumes of emailWhat’s Happening With the K-9 Blog?2024-08-28T12:00:00+02:002024-08-28T12:00:00+02:00https://k9mail.app/2024/08/28/What's%20Happening%20With%20the%20K-9%20BlogAs we continue our journey of transitioning K-9 Mail to Thunderbird for Android, we are officially sunsetting the K-9 Mail blog. But, this isn’t goodbye – just a change in scenery! Moving forward, all updates, news, and exciting developments will be shared regularly on the Thunderbird Blog.

If you’ve missed the most recent update on the Thunderbird blog (or any of the previous monthly updates), there has been a lot of momentum and progress! In the last nine months, we informed our community know that we have:

  • updated K-9 to Material 3
  • made K-9 compatible with Android 14
  • added longtime Thunderbird contributor Philipp Kewisch as the manager for Thunderbird on mobile
  • fixed a lot of bugs!

We know more improvements will follow, and we will continue to update you all on the Thunderbird blog on a monthly basis. And for all of you who are fans of our little robot dog, the K-9 app and all its associated branding will be maintained alongside Thunderbird for the foreseeable future.

Thank you to all of our users, contributors, and supporters who have helped make K-9 into a great email app with equally great values: privacy, open standards, and open development. This regeneration is only the start of K-9’s next adventure!

]]>
Team Thunderbird
When Will Thunderbird For Android Be Released?2023-12-28T13:00:00+01:002023-12-28T13:00:00+01:00https://k9mail.app/2023/12/28/When%20will%20Thunderbird%20for%20Android%20be%20releasedWhen will Thunderbird for Android be released? This is a question that comes up quite a lot, and we appreciate that you’re all excited to finally put Thunderbird in your pocket. It’s not a simple answer, but we’ll do our best to explain why things are taking longer than expected.

We have always been a bit vague on when we were going to release Thunderbird for Android. At first this was because we still had to figure out what features we wanted to add to K-9 Mail before we were comfortable calling it Thunderbird. Once we had a list, we estimated how long it would take to add those features to the app. Then something happened that always happens in software projects – things took longer than expected. So we cut down on features and aimed for a release at the end of 2023. As we got closer to the end of the year, it became clear that even with the reduced set of features, the release date would have almost certainly slipped into early 2024.

We then sat together and reevaluated the situation. In the end we decided that there’s no rush. We’ll work on the features we wanted in the app in the first place, because you deserve the best mobile experience we can give you. Once those features have been added, we’ll release the app as Thunderbird for Android.

Why Wait? Try K-9 Mail Now

But of course you don’t have to wait until then. All our development happens out in the open. The stable version of K-9 Mail contains all of the features we have already completed. The beta version of K-9 Mail contains the feature(s) we’re currently working on.

Both stable and beta versions can be installed via F-Droid or Google Play.

K-9 Mail’s Future

Side note: Quite a few people seem to love K-9 Mail and have asked us to keep the robot dog around. We believe it should be relatively little effort to build two apps from one code base. The apps would be virtually identical and only differ in app name, app icon, and the color scheme. So our current plan is to keep K-9 Mail around.

Whether you prefer metal dogs or mythical birds, we’ve got you covered.


This announcement was also published in the Thunderbird blog.

]]>
cketti
November/December 2023 Progress Report2023-12-28T12:00:00+01:002023-12-28T12:00:00+01:00https://k9mail.app/2023/12/28/K-9%20Mail%20in%20November%20&%20December%202023In February 2023 we started publishing monthly reports on the progress of transforming K-9 Mail into Thunderbird for Android. Somewhat to my surprise, we managed to keep this up throughout the entire year.

But since the end of the year company shutdown is coming up and both Wolf and I have some vacation days left, this will be the last progress report of the year, covering both November and December. If you need a refresher on where we left off previously, know that the progress report for October is only one click away.

New Home On Google Play

If you’ve recently visited K-9 Mail’s page on Google Play you might have noticed that the developer name changed from “K-9 Dog Walkers” to “Mozilla Thunderbird”. That’s because we finally got around to moving the app to a developer account owned by Thunderbird.

I’d like to use this opportunity to thank Jesse Vincent, who not only founded the K-9 Mail project, but also managed the Google Play developer account for all these years. Thank you ♥️

Asking For Android permissions

Previously, the app asked the user to grant the permission to access contacts when the message list or compose screens were displayed.

Requesting contacts permission from the message list screen Requesting contacts permission from the message compose screen

The app asked for the contacts permission every time one of these screens was opened. That’s not as bad as it sounds. Android automatically ignores such a request after the user has selected the “deny” option twice. Unfortunately, dismissing the dialog e.g. by using the back button, doesn’t count as denying the permission request. So users who chose that option to get rid of the dialog were asked again and again. Clearly not a great experience.

So we changed it. Now, the app no longer asks for the contacts permission in those screens. Instead, asking the user to grant permissions is now part of the onboarding flow. After adding the first account, users will see the following screen:

New permissions screen

The keen observer will have noticed that the app is now also asking for the permission to create notifications. Since the introduction of notification categories in Android 8, users have always had the option to disable some or all notifications created by an app. But starting with Android 13, users now have to explicitly grant the permission to create notifications.

While the app will work without the notification permission, you should still grant it to the app, at least for now. Currently, some errors (e.g. when sending an email has failed) are only communicated via a notification.

And don’t worry, granting the permission doesn’t mean you’ll be bombarded with notifications. You can still configure whether you want to get notifications for new messages on a per account basis.

Improved Account Setup

This section has been a fixture in the last couple of progress reports. The new account setup code has been a lot of work. And we’re still not quite done yet. However, it already is in a state where it’s a vast improvement over what we had previously.

Bug fixes

Thanks to feedback from beta testers, we identified and fixed a couple of bugs.

  • The app was crashing when trying to display an error message after the user had entered an invalid or unsupported email address.
  • While fixing the bug above, we also noticed that some placeholder code to validate email addresses was still used. We replaced that code and improved error messages, e.g. when encountering a syntactically valid, but deliberately unsupported email address like test@[127.0.0.1].
  • A user reported a crash when trying to set up an account with a particular email domain. We tracked this down to an MX DNS record containing an underscore. That’s not a valid character for a hostname. The app already checked for that, but the error wasn’t caught and so crashed the app.

User experience improvements

Thanks to feedback from people who went through the manual setup flow multiple times, we identified a couple of usability issues. We made some changes like disabling auto-correct in the server name text field and copying the password entered in the incoming server settings screen to the outgoing server settings screen.

Hopefully, automatic account setup will just work for you. But if you have to use the manual setup route, at least now it should be a tiny bit less annoying.

Edit server settings

Editing incoming or outgoing server settings is not strictly part of setting up an account. However, the same screens used in the manual account setup flow are also used when editing server settings of an existing account (e.g. by going to Settings → [Account] → Fetching mail → Incoming server).

Edit server settings screen, top part Edit server settings screen, bottom part

The screens don’t behave exactly the same in both instances, so some changes were necessary. In November we finally got around to adapting the screens. And now the new UI is also used when editing server settings.

Targeting Android 13

Every year Google requires Android developers to change their apps to support the new (security) features and restrictions of the Android version that was released the prior year. This is automatically enforced by only allowing developers to publish app updates on Google Play when they “target” the required Android version. This year’s deadline was August 31.

There was only one change in Android 13 that affected K-9 Mail. Once an app targets this Android version, it has to ask the user for permission before being able to create notifications. Since our plans already included adding a new screen to ask for permissions during onboarding, we didn’t spend too much time worrying about the deadline.

But due to us being busy working on other features, we only got around to adding the permission screen in November. We requested an extension to the deadline, which (to my surprise) seems to have been granted automatically. Still, there was a brief period of time where we weren’t able to publish new beta versions because we missed the extended deadline by a couple of days.

We’ll prioritize updating the app to target the latest Android version in the future.

Push Not Working On Android 14

When Push is enabled, K-9 Mail uses what the developer documentation calls “exact alarms” to periodically refresh its Push connection to the server. Starting with Android 12, apps need to request a separate permission to use exact alarms. But the permission itself was granted automatically.

In Android 14 (released in October 2023) Google changed the behavior and Android no longer pre-grants this permission to newly installed apps. However, instead of limiting this to apps targeting Android 14, for some reason they decided to extend this behavior change to apps targeting Android 13.

This unfortunate choice by the creator of Android means that Push is currently not working for users who perform a fresh install of K-9 Mail 6.712 or newer on Android 14. Upgrading from a previous version of K-9 Mail should be fine since the permission was then granted automatically in the past.

At the beginning of next year we’ll be working on adding a screen to guide the user to grant the necessary permission when enabling Push on Android 14. Until then, you can manually grant the permission by opening Android’s App info screen for the app, then enable Allow setting alarms and reminders under Alarms & reminders.

Community Contributions

In November and December the following contributions by community members were merged into K-9 Mail:

Thanks for the contributions! ❤️

Releases

If you want to help shape future versions of the app, become a beta tester and provide feedback on new features while they are still in development.


This progress report was also published in the Thunderbird blog.

]]>
cketti
October 2023 Progress Report2023-11-29T12:00:00+01:002023-11-29T12:00:00+01:00https://k9mail.app/2023/11/29/K-9%20Mail%20in%20October%202023Welcome to the progress report for October! If you missed the one for September, you’re in luck, because we always try to include a link to the progress report of the previous month in the introduction.

Translations

All the translations of the app are provided by volunteers from the community. This work is mostly independent from software development and design work. So sometimes it’s easy for us to forget that a lot more people regularly spend time working on the app.

Dear translators, thank you for all the work you’re putting into making the app more accessible by translating it to so many languages ❤️

Move to Weblate

In October we switched to Weblate to manage translations of the app. This has a couple of reasons:

  • Some of the volunteers providing translations have expressed a strong preference for Weblate. It’s also not uncommon for volunteers to also translate other open source apps. Weblate has become a popular option for that.
  • Weblate has good tools to allow us to better integrate it into our development process.
  • Unlike the previous translation service we used, Weblate itself is open source software. And you all know we love open source.

Call for translators

Currently K-9 Mail ships with support for the following 49 languages:

Albanian, Arabic, Basque, Belarusian, Breton, Bulgarian, Catalan, Chinese (Simplified), Chinese (Traditional), Croatian, Czech, Danish, Dutch, English, English (GB), Esperanto, Estonian, Finnish, French, Frisian, Gaelic, Galician, German, Greek, Hebrew, Hungarian, Icelandic, Indonesian, Italian, Japanese, Korean, Latvian, Lithuanian, Malayalam, Norwegian Bokmål, Persian, Polish, Portuguese (Brazil), Portuguese (Portugal), Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swedish, Turkish, Ukrainian, Welsh.

There’s an additional 7 languages where partial translations exist, but are currently not included in the app:

Armenian (36% translated), Azerbaijani (6%), Georgian (51%), Hindi (23%), Norwegian Nynorsk (43%), Tamil (16%), Vietnamese (63%).

However, some of the included translations haven’t been updated in a while. And so in addition to the 7 languages above, there’s quite a few languages that could use the help of new translators. Here’s the list of languages where less than 97% of strings have been translated:

Arabic (88%), Belarusian (89%), Breton (74%), Bulgarian (87%), Croatian (75%), Danish (92%), English (GB) (1%), Esperanto (82%), Gaelic (73%), Galician (82%), Greek (89%), Hebrew (49%), Indonesian (79%), Korean (69%), Latvian (89%), Lithuanian (87%), Malayalam (81%), Norwegian Bokmål (93%), Persian (89%), Portuguese (Portugal) (88%), Russian (88%), Serbian (79%), Slovak (71%), Slovenian (90%), Ukrainian (89%), Welsh (86%).

If you want to help out with translations for any of these, please head over to our Weblate project.

GitHub organization renamed

On October 31 our GitHub organization was renamed from thundernest to thunderbird. We also used this opportunity to rename the repository from k-9 to thunderbird-android.

Old links should redirect to the new location. But if you’re maintaining a website that links to our GitHub organization or repository, please update those links.

Improved account setup

The new account setup is still our main focus. In October most of our work went on behind the scenes. The only user-visible changes were fixing a crash when entering an unsupported email address and respecting the app theme and app language settings in the account setup UI.

We also worked on replacing the screens to edit incoming and outgoing server settings. However, that work is still ongoing and not available in beta releases yet.

Architecture decision records

We’re trying to get better at documenting decisions we made about the architecture of the app. Wolf started us off by creating the following architecture decision records (ADR):

“Make Better Email” meeting

At the end of October cketti attended Make Better Email, a meeting to bring together email client authors, email server authors, and email service providers to talk about how to improve the ecosystem through the better use of open standards.

Some of the topics we talked about:

  • Modern Authentication – What mechanism do we need to be able to support interoperable modern authentication for clients of open protocols, such as IMAP, JMAP, SMTP, CalDAV, and CardDAV.
  • Scheduled Send – How can this feature be implemented in an interoperable way.
  • IMAP Extensions – We came up with a recommendation for which existing standards should be targeted by living IMAP code.

In the upcoming months this should result in new RFC drafts and a best current practice (BCP) document at the IETF.

Community contributions

  • fishchimp made a change that hopefully makes it harder to accidentally trigger swipe actions in the message list (see #7280).
  • Marcel M. fixed a bug that lead to notifications always being silent on Android Wear devices (see #7284).

Many thanks to both of you! ❤️


This progress report was also published in the Thunderbird blog.

]]>
cketti
September 2023 Progress Report2023-10-27T12:00:00+02:002023-10-27T12:00:00+02:00https://k9mail.app/2023/10/27/K-9%20Mail%20in%20September%202023Welcome back to your monthly K-9 Mail update! The previous month ended with Mozilla’s All-Hands event in Montreal, Canada. While I used this opportunity for a three weeks long vacation in Canada (it was great, see picture below), Wolf went back to work on your favorite mobile email client as it transforms into Thunderbird for Android. Nature shot of a beautiful place in Canada

Improved account setup

Wolf continued to work on the new and improved account setup code. This mostly involved fixing bugs and improving the internal architecture, so the code will be easier to maintain in the future.

With the switch to the new account setup code, we were able to remove (some of) the old setup code. If you’re software developer, you know that being able to delete a significant amount of old code is one of the best feelings on the job. If you’re not, just take my word for it.

Wolf also started work on using the new server settings screens when editing the incoming and outgoing server of an existing account. Once that work is complete we’ll be able to delete even more old code.

Unfortunately, none of this work resulted in new screens that we could show off in this progress report. But maybe the following stats can give an idea of how busy Wolf was. Graph showing Wolf's number of commits in September

App maintenance

These are some of the more notable bugs we fixed in September.

Vector image as app icon

Some users reported that the splash screen newer Android versions automatically display, shows a blurry app icon. The reason was that we used a bitmap that looked fine when used as regular-sized icon, but that looked blurry when being scaled up, e.g. for the splash screen.

We fixed this by converting the icon into the vector image format supported by Android. To be able to do that we had to remove some details from the icon. But the result is a sharp app icon on the splash screen.

Old blurry splash screen New sharp splash screen

Fixed OAuth 2.0 for Yahoo and AOL

In our new setup code we accidentally broke OAuth 2.0 support for Yahoo and AOL accounts. Apparently some people still use those email providers. So we fixed the bug.

Cleaned up “Return to list after delete” setting

K-9 Mail allows the user to specify what is displayed next after a message has been deleted from the message view screen. Available options are:

  • return to message list
  • show next message
  • show previous message

However, those are not the options a user could select in app settings. There were two preferences: Return to list after delete and Show next message after delete.

Old "after delete" navigation settings

During one of our design meetings we quickly decided this is not a great user experience and changed it to one setting with three options.

New "after delete" navigation setting

Since the same behavior is also used after moving a message, we also used this opportunity to change the name of the setting.

Community contributions

In September we merged the following pull requests by external contributors:

Thank you. Your work is greatly appreciated ❤️

Releases

We didn’t release any beta or stable versions in September. However, that’s an exception. Usually we publish a couple of beta releases a month. If you want to help shape future versions of the app, become a beta tester and provide feedback on new features while they are still in development.


This progress report was also published in the Thunderbird blog.

]]>
cketti
August 2023 Progress Report2023-09-15T12:00:00+02:002023-09-15T12:00:00+02:00https://k9mail.app/2023/09/15/K-9%20Mail%20in%20August%202023A Quiet Yet Productive Month

August was a relatively calm month for the K-9 Mail team, with many taking well-deserved summer vacations and attending our first Mozilla All-Hands event. Despite the quieter pace, we managed to hit a significant milestone on our journey to Thunderbird for Android: the beta release of our new account setup interface.

Beta Release with New Account Setup: We Want Your Feedback!

We’re thrilled to announce that we rolled out a beta version featuring the new account setup UI. This has been a long-awaited feature, and even though the team was partially on vacation, we managed to get it out for user testing. The initial feedback has been encouraging, and we’re eager to hear your thoughts.

Screenshot of account setup screen Screenshot of account setup screen Screenshot of OAuth sign-in screen Screenshot of account setup screen

You can find the K-9 Mail v6.710 beta version here:

If you’ve tried the beta, we’d love to get your feedback. What did you like? What could be improved? Your insights will help us refine the feature for its official release.

How to Provide Feedback

You can provide feedback through the following channels:

Community contributions

In August we merged the following pull requests by these awesome contributors:


This progress report was also published in the Thunderbird blog.

]]>
Wolf Montwé
July 2023 Progress Report2023-08-23T12:00:00+02:002023-08-23T12:00:00+02:00https://k9mail.app/2023/08/23/K-9%20Mail%20in%20July%202023The day I write this, it’s very hot outside. Too hot to think of a good introduction to this blog post that also includes a link to the previous month’s progress report… Well, I guess this will have to do. I’m off to get some ice cream 🍨😎

Please enjoy this brief report of our development activities in July 2023.

Improved account setup

Since Wolf joined in February of this year, he has spent a considerable amount of time on many of the individual pieces that make up the new and improved account setup user interface. July was the month when things started coming together. For the first time we were able to test the whole flow and not just individual parts.

Screenshot of account setup screen Screenshot of account setup screen Screenshot of OAuth sign-in screen Screenshot of account setup screen

Things were looking good. But a few small issues kept us busy and prevented us from releasing a beta version containing the new account setup.

Material 3 experiments

We’ve done some experiments to get a better idea of how much work it will be to switch the app to Material 3, the latest version of Google’s open-source design system. We’re now cautiously optimistic. And so the current plan is switch to Material 3 before renaming the app from K-9 Mail to Thunderbird.

Community contributions

In July we merged the following pull requests by external contributors:

Security audit report

After a few busy days surrounding the Thunderbird Supernova release, we finally managed to publish the report of the security audit organized by OSTIF and performed by 7ASecurity. We’re happy to report that no high-risk vulnerabilities were found. The security audit did uncover a handful of low-to-medium risk vulnerabilities.

To learn more about this, read our blog post K-9 Mail Collaborates With OSTIF, 7ASecurity On Security Audit.

Thank you to everyone involved in making this happen!


This progress report was also published in the Thunderbird blog.

]]>
cketti
June 2023 Progress Report2023-08-01T12:00:00+02:002023-08-01T12:00:00+02:00https://k9mail.app/2023/08/01/K-9%20Mail%20in%20June%202023Apparently our July has been so busy that we didn’t find the time to write up the progress report for June. But a late report is better than no report 😄

If you need a refresher on what happened the previous month, read the May 2023 Progress Report.

Improved account setup

The roadmap item we’re currently working on is Improve Account Setup. Most of our time went into working on this. However, for June there’s no exciting news to share. We mostly worked on the internal plumbing; that is important to get right, but not necessarily great material for a blog post. Hopefully there will be new screenshots to share in July’s progress report.

App maintenance

Having an app with a large user base means we can’t spend all of our time working on new features. Fixing bugs is a large and important part of the job. Here’s a writeup of just three of the bugs we fixed in June.

Folder appears to be empty

A user reported that some of their folders appear to be empty in K-9 Mail. Using the provided debug log (❤️) we were able to track this down to a message containing an invalid email address, specifically one whose local part (the text before the @ symbol) exceeds the limit of 64 characters.

The error was thrown by a newly added email address parser that is stricter than what we used before. At first it was a bit surprising that this would lead to messages in a folder not being shown. We deliberately kept this new implementation out of the code responsible for parsing emails after download and the code for displaying messages.

However, it turned out the new email address parser was used when getting the contact name belonging to an email address. This lookup is performed when loading the message list of a folder from the local database. When an error occurs during this step, an empty message list is shown to the user.

To fix this bug and limit the impact of similar problems in the future, we made the following changes:

  • Ignore most errors when parsing email addresses from messages that the user has received. The world is full of email addresses that violate the specification but work mostly fine in practice. However, we still want to be strict when it comes to the email addresses we accept, e.g. when setting up a new account.
  • Ignore errors with the email address when trying to fetch the system contact belonging to that email address. This may lead to the app not being able to fetch a contact name for an spec-violating email address. But this will no longer lead to failing to load the entire message list.
  • We added a message with an email address whose local part exceeds the length limit to our test account. That way we are likely to catch bugs related to such email addresses before they make it into a beta release.

We’re very grateful to our beta testers for finding and reporting bugs like this one. That way we can fix them before they make it into a stable release.

Adding an email address to an existing contact

With the introduction of the message details screen we added a button to add a message sender or recipient to the contacts database using an installed contact app. If the email address can already be found in the contacts database, this button is hidden and tapping the participant name, email address, or contact picture opens the contacts app.

Screenshot of message details screen

Previously the app didn’t make that distinction and tapping an email address or participant name would open the contacts app using the “show or create” action. Apparently this reliably allowed to add an email address to an existing contact. However, the “insert” action used by the details screen only allows adding the email address to an existing contact with some contacts apps, but not others 😞

Screenshot of Google contacts app with "insert" action Screenshot of AOSP contacts app with "insert" action

We changed the action to start the contacts app from “insert” to “insert or edit”, and this seems to reliably offer the option to add the email address to an existing contact.

Screenshot of Google contacts app with "insert or edit" action Screenshot of AOSP contacts app with "insert or edit" action

Reply behavior depends on message size

A user reported that the behavior when replying to a message retrieved via a mailing list was different depending on whether the message had been downloaded completely or only partially.

K-9 Mail supports only downloading parts of a message when the email exceeds a configured size. In that case also only selected parts of the message header are downloaded. Unfortunately, we forgot to include the List-Post header field that is used to determine the email address to which to reply.

The fix was simply adding List-Post to the list of header fields to fetch from the IMAP server.

Community contributions

In June we merged the following pull requests by external contributors:

Releases

In June 2023 we published the following beta versions:

If you want to help shape future versions of the app, become a beta tester and provide feedback on new features while they are still in development.


This progress report was also published in the Thunderbird blog.

]]>
cketti
May 2023 Progress Report2023-06-15T12:00:00+02:002023-06-15T12:00:00+02:00https://k9mail.app/2023/06/15/K-9%20Mail%20in%20May%202023As announced in the progress report for the previous month, in May we mostly worked on a new account setup experience. To learn more about that and what else has happened in the world of K-9 Mail as it evolves to Thunderbird For Android, read on.

The Revamped Account Setup UI

In our continued efforts to enhance the user experience, we have redesigned the account setup UI. This is the first point of contact for our users and we wanted to ensure it is as intuitive and straightforward as possible. We integrate Thunderbird’s Autoconfiguration for seamless email account setup, start the transition of our app’s UI from XML Android layouts to Jetpack Compose, and adopt Atomic Design principles for a cohesive, intuitive design.

At the heart of this transformation is the integration of Thunderbird Autoconfig. This system enables automatic configuration of most email accounts, simplifying the user experience by making the connection to email servers effortless. Users only need to enter their email address and the server settings are obtained via multiple methods. They can be sourced from a central database (ISPDB), retrieved directly from ISPs through a configuration server, drawn from provided configuration files. In cases where these methods are unsuccessful, the configuration is derived from common server names. If all else fails, manual configuration is always available. With this powerful tool, setting up an email account becomes a breeze.

Our redesigned account setup UI has been written using Jetpack Compose. Although XML layouts have long been the standard for building Android UIs, the Android ecosystem is transitioning towards Jetpack Compose as the new norm. This declarative UI toolkit has enabled us to build UIs more efficiently, with less boilerplate code and reduced likelihood of bugs. Jetpack Compose defines UI elements as composable functions written in Kotlin code. This results in more intuitive, expressive, and readable components and promotes the reuse of UI components, streamlining the UI design process. This aligns well with the implementation of our new design system.

In combination with our new design system, which follows Atomic Design principles, the account setup UI presents a cohesive and intuitive user interface. The fundamental concept of Atomic Design involves breaking down design into smaller, reusable components (atoms), which can be combined to form larger, more complex structures (molecules and organisms). This approach has allowed us to systematically deconstruct our UI interfaces into their basic components and combine them to form more complex, reusable components for the account setup UI. The result is a more structured, scalable, and efficient design system, improving the consistency and usability of our app.

Account setup screenshot <Account setup screenshot <Account setup screenshot

We’re confident that these changes have resulted in a smoother, more user-friendly account setup process. As we prepare to release a new beta version that includes this feature, we are eager to receive your thoughts and feedback on these improvements.

To Reply, or To Reply All?

When we released the overhauled message view in K‑9 Mail 6.600, the button to reply to a message changed from a menu offering Reply, Reply All, and Forward to a single button with a default action and the additional actions moving to the overflow menu (⋮). The default action in K‑9 Mail 6.600 was Reply All. Due to many complaints we changed it to Reply in K‑9 Mail 6.602.

However, it became clear that neither default works well for everyone, or even for one person in every situation. We’ll continue to work on this and hope we’ll find a solution where everyone can have their favorite behavior without forcing a significant portion of users having to dig through settings to get it.

Community contributions

  • Ilya Bizyaev made a small change to the app so it also runs on Android devices that don’t support home screen widgets (see #6889).
  • Georg Sieber fixed a bug where we got the initialization order wrong (see #6909). This lead to the error message “Cannot connect to crypto provider” (erroneously) being displayed in certain situations (see #6068). If you were affected by this and want to say thank you, we’ll point out that there’s a way to sponsor Georg’s open source work.
  • Siva Subramaniam noticed that the “Sign in with Google” button was unreadable when using the dark theme (see #6924) and worked on a fix for the problem (see #6928).
  • Simon Arlott fixed a couple of issues with importing and exporting identities (see #6936).

Many thanks to all of you! ❤️

Security Audit

With the help of the Open Source Technology Improvement Fund we’ve hired 7ASecurity to do a security audit of K‑9 Mail. We’re happy to report that no critical issues have been found.

In May we spent a couple of days fixing most of the security issues that were identified during the audit. We’ve created entries in our issue tracker for findings that still need to be addressed.

The final report should be ready soon. We’ll announce its availability in this blog.

Releases

In May 2023 we published the following stable releases:

… and the following beta versions:

If you want to help shape future versions of the app, become a beta tester and provide feedback on new features while they are still in development.


This progress report was also published in the Thunderbird blog.

]]>
Wolf Montwé and cketti
April 2023 Progress Report2023-05-12T12:00:00+02:002023-05-12T12:00:00+02:00https://k9mail.app/2023/05/12/K-9%20Mail%20in%20April%202023We’re back with another progress report as we continue improving K-9 Mail for its transformation to Thunderbird for Android! We spent most of the previous month preparing for a new stable release. In April 2023, we finally published K-9 Mail 6.600.

K-9 Mail 6.600

Along with a couple of new features, a lot of changes and bug fixes went into the new K-9 Mail version. However, space for release notes in app stores is very limited. So we went with this list of changes:

  • Redesigned the message view screen; tap the message header containing sender/recipient names to see more details
  • Added a setting for three different message list densities: compact, default, relaxed
  • Added better support for right-to-left languages when composing messages
  • Search now also considers recipient addresses
  • Fixed a bug where notifications would sometimes reappear shortly after having been dismissed
  • IMAP: Fixed a bug where sometimes authentication errors were silently ignored
  • Various other small bug fixes and improvements

Missing home screen widgets

After learning that an old bug in Android had finally been fixed in 2021, we changed the app to disable home screen widgets by default and only enable them after the user had added at least one account to K-9 Mail.
Of course we limited this to Android versions that should include the fix. However, this didn’t quite work as intended and existing home screen widgets disappeared on some devices. So we reverted the change in K-9 Mail 6.601.

K-9 Mail 6.7xx

With the stable release out the door, it was time for a new series of beta releases to test early versions of features and fixes that should go into the next stable release.

Bug fixes

The first beta version (6.700) didn’t include any new features, but fixes quite a few bugs (mostly obscure crashes).

IMAP ID extension

The GitHub user wh201906 contributed code to add support for the IMAP ID extension (thank you). It is used by an email client to send information about itself to the IMAP server. In turn, the server responds with some information about itself (name, software version, etc).

Unfortunately, some email providers reject clients not using this extension, even though the specification explicitly states the extension must not be used for that purpose. To make K-9 Mail work with such email providers without users having to change a setting, we decided to enable this functionality by default. Also, because we want to align our default values with Thunderbird, and it’s enabled there by default.

The information sent to the server is limited to just the app name – “K-9 Mail”. If you wish, you can disable this feature under Settings → <Account> → Fetching mail → Incoming server → Send client ID.

Next: Improved account setup

The main goal for the next stable release is to improve the account setup experience. Many new users are struggling with setting up an account in K-9 Mail. That’s because K-9 Mail only supports automatic account setup for a handful of large email providers. For all other email providers users have to manually enter the email server settings. And this can be a very frustrating experience.

Ideally, users only have to provide their email address and the app will figure out the rest. We’ll be adding support for Thunderbird’s Autoconfig mechanism which aims to deliver just this user experience.

Hopefully, we’ll be able to ship a first version of this in a beta release in May.

Releases

In April 2023 we published the following stable releases:

… and the following beta versions:

If you want to help shape future versions of the app, become a beta tester and provide feedback on new features while they are still in development.


This progress report was also published in the Thunderbird blog.

]]>
cketti