
Thunderbird for Android / K-9 Mail: January 2024 Progress Report
A new year, a new progress report! Learn what we did in January on our journey to transform K-9 Mail into Thunderbird for Android. If you’re new here or you forgot where we left off last year, check out the previous progress report.
Account setup
In January most of our work went into polishing the user interface and user experience of the new and improved account setup. However, there was still one feature missing that we really wanted to get in there: the ability to configure special folders.
Special folders
K-9 Mail supports the following special folders:
- Archive: When configured, an Archive action will be available that moves a message to the designated archive folder.
- Drafts: When configured, the Save as draft action will be available in the compose screen.
- Sent: Messages that have been successfully submitted to the outgoing server will be uploaded to this folder. If this special folder is set to None, the app won’t save a copy of sent messages.
Note: There’s also the setting Upload sent messages that can be disabled to prevent sent messages from being uploaded, e.g. if your email provider automatically saves a copy of outgoing messages. - Spam: When configured, a Spam action will be available that moves a message to the designated spam folder. (Please note that K-9 Mail currently does not include spam detection. So besides moving the message, this doesn’t do anything on its own. However, moving a message to and from the spam folder often trains the server-side spam filter available at many email providers.)
- Trash: When configured, deleting a message in the app will move it to the designated trash folder. If the special folder is set to None, emails are deleted permanently right away.
In the distant past, K-9 Mail was simply using common names for these folders and created them on the server if they didn’t exist yet. But some email clients were using different names. And so a user could end up with e.g. multiple folders for sent messages. Of course there was an option to manually change the special folder assignment. But usually people only noticed when it was too late and the new folder already contained a couple of messages. Manually cleaning this up and making sure all email clients are configured to use the same folders is not fun.
To solve this problem, RFC 6154 introduced the SPECIAL-USE IMAP extension. That’s a mechanism to save this special folder mapping on an IMAP server. Having this information on the server means all email clients can simply fetch that mapping and then there should be no disagreement on e.g. which folder is used for sent messages.
Unfortunately, there’s still some email providers that don’t support this extension. There’s also cases where the server supports the feature, but none of the special roles are assigned to any folder. When K-9 Mail added support for the SPECIAL-USE extension, it simply used the data from the server, even if it meant not using any special folders. Unfortunately, that could be even worse than creating new folders, because you might end up e.g. not having a copy of sent messages.
So now the app is displaying a screen to ask the user to assign special folders when setting up an account.
This screen is skipped if the app receives a full mapping from the server, i.e. all special roles are assigned to a folder. Of course you’ll still be able to change the special folder assignment after the account has been created.
Splitting account options
We split what used to be the account options screen into two different screens: display options and sync options.



Improved server certificate error screen
The screen to display server certificate errors during account setup has received an overhaul.



Polishing the user experience
With the special folders screen done, we’re now feature complete. So we took a step back to look at the whole experience of setting up an account. And we’ve found several areas where we could improve the app.
Here’s an (incomplete) list of things we’ve changed:
- We reduced the font weight of the header text to be less distracting.
- In some parts of the flow there’s enough content on the screen that a user has to scroll. The area between the header and the navigation buttons at the bottom can be very small depending on the device size. So we included the header in the scrollable area to improve the experience on devices with a small screen.
- There are a couple of transient screens, e.g. when checking server settings. Previously the app first displayed a progress indicator when checking server settings, then a success message for 2 seconds, but allowed the user to skip this screen by pressing the Next button. This turned out to be annoying and confusing. Annoying because the user has to wait longer than necessary; and confusing because it looked like user input was required, but by the time the user realizes that, the app will have most likely switched to the next screen automatically.
We updated these transient screens to always show a progress indicator and hide the Next button, so users know something is happening and there’s currently nothing for them to do. - We also fixed a couple of smaller issues, like the inbox not being synchronized during setup when an account was configured for manual synchronization.
Fixing bugs
Some of the more interesting bugs we fixed in January:
- When rotating the screen while selecting a notification sound in settings, some of the notification settings were accidentally disabled (#7468).
- When importing settings a preview lines value of 0 was ignored and the default of 2 was used instead (#7493).
- When viewing a message and long-pressing an image that is also a link, only menu items relevant for images were displayed, but not ones relevant for links (#7457).
- Opening an attachment from K-9 Mail’s message view in an external app and then sharing the content to K-9 Mail opened the compose screen for a new message but didn’t add an attachment (#7557).
Community Contributions
new-sashok724 fixed a bug that prevented the use of IP addresses for incoming or outgoing servers (#7483).
Thank you ❤️
Releases
- K-9 Mail v6.714 (beta) (2024-01-04)
If you want to help shape Thunderbird for Android, become a beta tester and provide feedback on new features while they are still in development.

0 responses