K9 is an experimental fork of the core Android POP/IMAP email client. Primarily, K9 is focused on making it easy to chew through large volumes of email.
What's New in This Release:
· Super-dense message lists are now shown if you set the number of message preview lines to 0 & disable contact pictures in Global Settings -> Display
· New Slovak translation
· Updates to Czech, Spanish, Finnish, French, Korean, Polish and Russian translations
· Added autoconfiguration for Fastmail.FM
· Tightened up the account list display for narrow devices
What's New in 4.403:
· This version fixes a crashing bug on ICS & JB.
What's New in 4.401:
· This release fixes a few crashing bugs in version 4.400.
What's New in 4.201:
· Automatic folder config for Yahoo!, Gmail, and other RFC6154 SPECIAL-USE-compliant servers
· Set the IMAP namespace for Gmail during auto-configuration
· Changed UI to allow selecting the empty IMAP namespace
· Set 'When I delete a message' to 'Delete from server' by default for IMAP on automatic setup like manual setup does
· Set default names for Archive and Spam on manual config like automatic setup does
· Added autoconfiguration settings for several providers
· Option to have confirmation on deleting starred messages
· Option to strip signature from quoted text in replies
· Extended setting to hide subject in notification area (never, when locked, always)
· Save settings changes "on pause" rather than "on back" so we actually save settings when a user hits home or menu or whatever
· Added font size setting for text input fields in the message composition screen
· Added a setting to disable marking messages as read on viewing
· Enable system zoom and disable gestures by default
· Add discard confirmation dialog when pressing back in message compose
· Option to now refuse to save drafts of messages marked as encrypted
· Added a button to switch the identity in the message composition screen
· Prompt user which email address to use when a contact with multiple email addresses was picked
Replying to mail:
· Fixed quoting of text/plain reply when sending text/html messages (builds plain reply separately instead of converting from the HTML)
· Forwarded messages always use the quoting style 'Header'
· You can now can have reply and signature before quote, reply and signature after quote, or reply before and signature after quote (setting reply after and signature before still corrects to both after)
· Convert quote characters in plain text messages to blockquotes in the HTML version. "Be like Thunderbird."
· Colorize quoted text that has been converted to HTML. Like Thunderbird, but optimized for mobile (no right margin quote bar, thinner left margin quote bar).
· Added 'From:' addresses on "reply all" even when 'Reply-To:' is set. Don't repeat address in 'To:' field if it's already included because it's the 'Reply-To:' address.
· Preserve header order (with the exception of duplicate headers like 'Received' they all show up where the first one did)
· Improved zooming/scrolling when viewing a message
· Added long-press popup menu to links in email message display
· Workaround to detect the charset from HTML mail without charset parameter on the header
· Added button to show unnamed and inline attachments
· Added batch buttons for 'Archive' and 'Move'. Made batch buttons configurable
· Remember the most recent sort setting in the message list
· Added a "sort by arrival" option
· Added widget to display the unread count for an account
· Added launcher shortcuts for special accounts/folders ("Unified Inbox" and "All messages")
· Fixed the parsing of response data for WebDAV requests
· Fall back to HELO command if the server doesn't know EHLO (SMTP)
· Improvements to mail sending timeout issues
· Yahoo! IMAP seems to no longer require 'ID ("GUID" "1")' over non-3G. See http://mobile.yahoo.com/mail for IMAP setup instructions.
· Support ACTION_SEND extras when handling ACTION_SENDTO. Too many applications get this wrong and rely on the undocumented behavior of the AOSP Email app and Gmail
Notable bug fixes:
· IMAP message UIDs are 32 bit unsigned values and cannot be stored in int, so we now parse them as long.
· Disable special screen reader mode on ICS. The default message view has special accessibility features already.
· Don't save to drafts if drafts folder is -NONE-
· Hide buttons & settings that don't do anything on POP3 accounts
· Delete attachment metadata and thumbnails when deleting attachments
· Reset unread/flagged count on "empty trash"
· Updated French translation (erkan2005)
· Updated Japanese translation
· Added Hebrew translation (elyashiv sabach
· Updated zh-rTW translation (Jeff117077)
· Updated Polish translation (Blazej Jezewski)
· Added Greek translation (IGaviotis)
· Updated Turkish translation (wakeup)
· Added Danish translation (mittaa)
· Updated French and German translation (damor)
· Updated Russian translation (Dmitry Ashkadov)
· Added Ukrainian translation (Andriy Kopanytsia)
· Updated Spanish translation (AntonioGPS)
· Updated Chinese (zh-CN) translation (sunnavy)
· Updated Finnish translation (jkinnunen)
· Updated Italian translation (Votyer)
· Work around a bug in Android 4.x (?) when the system locale is Turkish
What's New in 4.010:
· Version 4.009 fixes a catastrophic error that could cause mail stored on SD cards to vanish.
What's New in 4.008:
· Version 4.008 fixes a regression on Android 2.1 or earlier introduced in 4.007
What's New in 4.007:
· Version 4.007 includes a fix for a permissions issue on K-9's data files discovered (and fixed) by Ashley Willis.
What's New in 4.006:
· Upgraded the "read messages" and "delete messages" permissions from "normal" to "dangerous" to allow users and devices to better manage user data security.
· Fixed a rare NPE in autocompletion of email addresses.
What's New in 3.906:
· NPE fix in message list
· Restore support for Android 1.5
What's New in 3.605:
· When a user has accidentally configured their "Drafts" and "Outbox" folders to be the same folder, K-9 now tries harder to avoid sending draft messages.
· When an SMTP server sends a "permanent failure" error, K-9 stops trying to send the message
· When K-9 fails to deliver a message 5 times in a row, K-9 will now wait until the app stops and starts before trying again
· Error messages sent by SMTP servers should now actually be shown to the user in the Android Notification
· Slightly correct an IMAP command that made certain cranky servers cranky
What's New in 3.601 / 3.706:
· Restore "only vibrate once" vibration notification option.
· Add a setting to enable Outlook-style message quoting.
· Add a setting to allow users to always show email addresses instead of the "friendly" parts of email addresses.
· Add a setting to disable unread count in notification bar.
· Add a setting to change the font size of the message preview in the message list.
· Round account color chips
· Be a little more graceful when scrolling horizontally in a (vertical) scroll view. Not quite to the point of diagonal scrolling, but hopefully closer.
· Visual cleanup to Message Lists, Message views
· Stop showing "Not polling" in the status header. Most of the time, this is because Push mail is enabled.
· Improve the first page of the wizard on tablet-scale devices
· Added a Brazilian Portuguese translation from Marcio Viterbo
· Updated Italian translation from Giuseppe Arrigo and Paolo Maccione.
· Updated Czech translation from lubekgc.
· Updated German translation with slightly modified version of the patch provided by OliverMe...@googlemail.com
· Updated Italian translation from paolo.maccione
· Updated Spanish translation from Adolfo Gutiérrez Ocaña
· Improved emoji support for a wide variety of carriers. HIRANO Takahito
· Support for emoji in message subjects. HIRANO Takahito
· Allow emoji input on Japanese devices. HIRANO Takahito
· Implement phonetic search of Contacts on Eclair and earlier.
· Upgrade to a newer version of MIME4J to gain significant performance improvements from the past few years of development
· Enable Strict Mode when a new "developer mode" is enabled and we're running on 2.3 or newer
· Update URL regexes by importing from AOSP and then from IANA
· Initial implementation of folder attributes on the folder, rather than in preferences
· Improve generation of plain text versions of HTML mail
· Improve generation of message previews
· Improve performance of account statistics generation.
· Call the routine to convert emoji to images only when a message actually contains emoji.
· Batch storing of unsynced messages to speed up DB update (chunk size set to 5).
· Execute LocalMessage.appendMessage() & LocalMessage.setFlag() in the same transaction for small message storing in order to speed up DB update.
· When mail is sent successfully, cancel the "couldn't send mail" notification
· Don't notify for new mail in a designated spam folder
· Prevent new mail notifications for IMAP messages older than our most recent message.
· Use a heuristic to try to avoid notifying POP3 users about older mail messages
· Preserve HTML formatting when replying to or forwarding HTML mail
· Clean up the display of quoted messages on the mail composition screen.
· When editing a previously saved draft, only show the BCC field if it has entries other than the auto-bcc for that account.
· Switch from generating X-User-Agent to User-Agent headers.
· Use full email addresses as usernames for alternate Yahoo! domains.
· Add support for other Yahoo! domains (ymail.com, rocketmail.com)
· Set up some reasonableish defaults for which folders to sync when creating a new account.
· Correctly encode/escape strings when used in IMAP commands.
· Escape backslashes in IMAP mailbox names
· Fix for the "K9 skips every 101st message when fetching on IMAP" bug
· Better handle the case where a list in an IMAP response is prematurely ended by CRLF.
· Changed SMTP code to handle reply codes without additional text.
· Try using IP addresses for EHLO if the local hostname is unavailable. Only use a default hostname if the IP address is unavailable.
· Fix usage of 'advanced' exchange settings.
· Fix form based re-authentication when logon cookies had expired.
· Don't reset visible limits every time K-9 is opened, only when the user changes how many messages they want to be synced
What's New in 3.403 / 3.511:
· Italian translation updates from paolo.maccione
· Fix for a settings crash in Italian locales
What's New in 3.401:
· Updated Spanish translation from javier.crespocarreno and bergonzini
· Updated German translation from bobo_bb, therossoblu
· Updated Japanese translation
· Updated French translation
· Added a first pass implementation of being able to resend a message.
· Try much harder to send outgoing mail
· Better notifications when message sending fails
· Replying to a message you sent now sends mail to the recipients of the original message, not to you.
· Relabeled the "Choose Identity" menu item in message compose to be a bit more obvious to end users.
· Display name and email address in separate lines for auto-complete results in message compose activity. Fixes issue 2442
· Match beginning of words when searching for contacts in Android 1.5/1.6 (e.g. "Doe" will find "Doe, John" and "John Doe") Fixes issue 1354
· Mark contacts as contacted when a mail is sent to them. Fixes issue 2522
· Imported icon updates from Pierre-Luc Auclair
· Animated the batch-operations toolbar (Imported from AOSP)
· Pinch-to-zoom should now be more reliable. Patch by achen.code. Fixes isue 2720
· In Message Lists, unread message senders are now more consistently shown in bold. patch from achen.code. Fixes Issue 2719
· Implement the ability to store messages on SD. You can find the toggle in Account Preferences under Storage.
· Fixed significant bugs in how we garbage-collect deleted messages
· Improved the "Do what I mean" nature of "Empty trash" - it now syncs the trash folder after deletions to clear out local records of deleted messages and does a compact operation on the local store.
· Try to gracefully handle account DB corruption by deleting file on open exception. Updates issue 2537
· Added the ability to completely wipe the locally cached messages of a single synced folder.
· preliminary implementation of 'quiet time'
· Replaced our color picker with a variant of android-color-picker
· Added a "fetch all messages" visible limit
· Added a new preference to let users select how many lines to show in message-preview mode.
· Moved our "pick a folder" preferences out of the account setup wizard, into the "Folders" section
· Fixed an NPE when toggling "batch" update buttons.
· Fixed an NPE in account shortcuts
· Guard against null content from html parts on reply/forward, which was causing a bunch of NPEs on the market.
· We don't cache positive DNS lokups. We shouldn't cache negative DNS lookups either. (Should be extended to all protocols)
· Ignore messages without unique-id when parsing UIDL response Fixes issue 2731
Exchange / WebDAV:
· Exchange authenticaton and setup overhaul from Kris Wong
· Applied WebDavStore_cleanup.diff to remove dead code in the WebDav store from Kris Wong
· Changed external intent (e.g. Intent.ACTION_SEND_TO) handling code in MessageCompose
· only allow mailto URI for ACTION_VIEW and ACTION_SENDTO (as documented by AOSP)
· allow additional recipients via "to" parameter in mailto URI
· removed check for allowed MIME type when adding attachments since we're accepting all MIME types anyway
· show CC and BCC text fields when one of those recipient types was set by the intent
· use MIME type specified in intent for attachments (if present and doesn't contain a "")
· No longer delete the Outbox every time it's empty
· Significant automated code-cleanup from IntelliJ
· Improvements to message preview heuristics
· Fix for "http:/"-links in plaintext -emails. (add http:// is a link has no schema)
What's New in 3.207 / 3.390:
Major new features:
· added launcher shortcuts to accounts, refs issue 1025 - thialfihar
· Support for inline PGP digital signatures and encryption with APG - thialfihar
· Support Emoji for DoCoMo. Emoji icons are derived from http://start.typepad.jp/typecast/ - jca02266
· Added menu option to select & copy text in the message view. - cketti
· Allow users to choose an outgoing identity from any account during message composition - fiouzy & cketti
· First pass at a "download the rest of this message" button - jessev
· Added optional "Archive" and "Spam" buttons to Message View - thialfihar
· Added Czech localization provided by lubekgc (Thanks!) - cketti
· Added Japanese translation provided by hatty. - jca02266
· Updated french translation (thanks, p.lucauclair) - cketti
· Complete French translation added. Cheers, plauclair. - thialfihar
· Updated Polish translation with patch provided by borszczuk - cketti
· Google got rid of the android-6 distribution in the SDK. We now build against android-8, (though we're still backwards compatible to android-3.) - jessev
Selected internal improvements:
· Use of constants for immutable empty arrays (prevent useless memory allocation) - fiouzy
· Try to avoid a bunch of reallocations as we grow the temporary output stream by defining its size if we can get it - jessev
· Backport an update to getTextFromPart from AOSP as of 290348 - dealing with OOM as we import large messages - jessev
· Switch from the incomplete (but compatible with java 1.3) mime4j charset alias resolver to the core java nio version with a better charset database; rather than falling back to not showing the user a failing message, fall back to showing the user the message as ascii -- it makes it possible to get something out of an unknown-charset message, rather than just a "ha ha. no." error. - jessev
· use "http://" as baseUrl in WebView instead of "email://", refs issue 267 - thialfihar
· Better handling of cases where a special folder is set to INBOX (e.g. Sent folder = INBOX). Make sure we count unread messages and don't exclude the Inbox from notifications in this case. Fixes issue 1817 - cketti
· Synchronize iterator accesses to mAdapter.messages to avoid ConcurrentModificationException in MessageList. Fixes issue 1598 - fiouzy
· Avoid NullPointerException when trying to move a message before it is fully loaded (in message view). Fixes issue 1957 - cketti
· When counting remote unseen/flagged messages, don't window to only the most recent 300 messages - Since we display this # to the user, the "last 300" heuristic ends up confusing and wrong on a regular basis. - jessev
· added a setting for language, overriding the system locale settings - thialfihar
· Add a per-account setting to choose how much of each message to download automatically. - jessev
· Added option to return to the message list after deleting a message in the message view activity. Fixes issue 1634 - fiouzy
· Added preference to go to Integrated Inbox on application startup. Fixes issue 1797 - cketti
· Implements new setting "Sync remote deletions" which is checked by default. When unchecked, K-9 Mail will no longer remove messages from local storage just because the message was removed from the server. This functionality works for all account types. Messages will still be removed from the local store in order to stay within the limit imposed by the "Number of messages to display" setting. Fixes Issue 794 - danapple0
· Added the vibrate pattern preference. Fixes Issue 1915 - jca02266
· Added option to specify the message quote prefix character/string (default ">"). Applied patch provided by fiouzy (Thanks!) with some small modifications. Fixes issue 1830 - cketti
· Added option to specify Reply-to address for an identity. Patch provided by fiouzy (Thanks!). Fixes issue 1762 - cketti
· With all the other performance work we've been doing, getting a message into the messagelist is now much, much faster. Intentionally loading the whole mailbox before we let the user interact with the list is increasingly painful. A 250 message mailbox takes 2+ seconds to "unlock" on a modern phone. - jessev
· Rather than doing a full count of all the unread messages in each and every folder for each message downloaded in a session, factor the "unread messages" count out into the calling code. It's slightly less clean, but a pretty huge performance gain. - jessev
· Remove URLs from message previews. Suggested by Kevin Falcone - jessev
· Show "From", "To", "Cc" headers in "raw" form when displaying all message headers. Fixes issue 1805 - cketti
· Support inline images in HTML mail. - jca02266
· Don't show "To: " if the only recipients were ccs and bccs. - jessev
· Experimental changes to tell WebView that the HTML versions of messages we generate from ascii are "mobile-optimized" - jessev
· Don't fire off a notification about new mail before we finish initializing an account. This should prevent "(null)" notifications on account setup- jessev
· K-9 wasn't properly clearing the thumbnail/tmpfile cache. We now properly clear it up on start, which causes K-9 to leak less flash memory AND fixes the "Wrong thumbnail" bug. - jessev
· After we download attachments, get rid of the "old" attachment views - jessev
· When marking a message as read as we're opening it from the message list, don't "bother" sorting the messagelist again before opening the message, it adds a bit of slowness when we don't need it and we'll sort again when we get back to the message list. - jessev
· remember which message was selected in MessageList in case the list changes while the dialog is up - thialfihar
· Applied patch by ndarilek (thanks!) to add android:contentDescription attributes to unlabeled input fields to improve accessibility. - cketti
· Moving sendMessage and saveMessage into AsyncTasks to make the send/save buttons much less janky - jessev
· Remember last selected folder for copy and move operations and scroll this folder into view on subsequent folder selections (for move and copy operations). - cketti
· Added account settings for "archive" and "spam" folders. See issue 3. - thialfihar
· Show To, Cc and From headers on the part of additional headers without fetching all headers. Fixes Issue 1914 - jca02266
· Hide the message header while flipping messages, rather than displaying the "wrong" thing during load. - jessev
· Ask the user to save a draft message or discard it when the press the back button. - jca02266
· Start at replacing text buttons with image buttons. - jessev
· make MessageList remember the last selected item - thialfihar
· Save/restore In-Reply-To/References headers on configuration change Fixes Issue 1887 - fiouzy
· Android is growing up a bit. artificially limiting the user to attachments of only 5MB is counter-productive, bump the artificial limit to 128M - jessev
· If we hit a race condition and download a message after it's already been marked as suppressed, then don't actually save it locally - jessev
· Only ask for POP3 capabilities before authorization if TLS should be used. Always ask after authorization. - cketti
· A race condition made the outgoing certificate being compared to the old incoming mHost, throwing an exception with an untrusted certificate dialogue to accept or decline. - jessev