K-9 Mail – Open Source Email App for Android
Find a file
cketti a2ac5b167e Change the way moving messages between folders in the database works
Previously, when moving a message, the entry in the `messages` table was rewritten to reference the destination folder. Then a "deleted" message entry was created referencing the source folder.
This commit changes the move code to create a new entry for the message in the destination folder and then changes the original message entry to be a "deleted" entry.
It's a first step towards being able to use a message's database ID instead of the server ID in "pending commands".

This also continues the project of moving database-related code to the `storage` module. There should now be enough scaffolding in place to make moving code from `LocalStore` and `LocalFolder` relatively painless.
2020-10-15 23:51:49 +02:00
.github Don't allow blank issue templates 2020-10-10 16:18:29 +02:00
.idea/codeStyles Add ktlint and Kotlin code style settings for Android Studio 2019-11-29 13:39:16 +01:00
.tx Update Transifex config 2020-05-26 16:26:08 +02:00
app Change the way moving messages between folders in the database works 2020-10-15 23:51:49 +02:00
backend Convert 'ImapSync' to Kotlin 2020-08-27 22:35:36 +02:00
config/lint Remove Checkstyle 2019-11-13 16:51:52 +01:00
docs correct comment 2019-02-12 17:00:53 +08:00
fastlane/metadata/android/en-US/images add app icon to fastlane structure 2020-02-28 16:38:31 +01:00
gradle/wrapper Update Gradle Wrapper to 6.5.1 2020-07-15 01:33:19 +02:00
images Add 'SettingsImportFragment' 2019-10-19 23:05:01 +02:00
mail When constructing new messages check header values 2020-10-13 03:29:20 +02:00
plugins/openpgp-api-lib Rename PROVIDER_BLACKLIST to DISALLOWED_PROVIDERS 2020-06-02 17:22:39 +02:00
tools Fix path in script to fix up Transifex output 2020-05-26 16:30:31 +02:00
.gitattributes Force gradlew (and other shell scripts) to use lf line endings. 2014-12-03 18:50:16 -08:00
.gitignore Exclude DS_Store 2017-09-02 15:41:06 +01:00
.gitmodules Kill our use of submodules dead. They're too painful for new contributors 2012-11-24 17:15:01 -05:00
build.gradle Update to targetSdkVersion 29 2020-09-20 01:29:50 +02:00
gradle.properties Disable Jetifier 2020-07-29 18:41:21 +02:00
gradlew Update Gradle Wrapper to 6.5.1 2020-07-15 01:33:19 +02:00
gradlew.bat Update Gradle Wrapper to 6.5.1 2020-07-15 01:33:19 +02:00
LICENSE Fix LICENSE on GitHub (#1712) 2016-10-12 16:35:13 +02:00
NOTICE Fix LICENSE on GitHub (#1712) 2016-10-12 16:35:13 +02:00
README.md Update links in README 2020-09-06 20:28:48 +02:00
settings.gradle Add :app:ui:setup module for new setup UI 2020-05-22 01:15:35 +02:00

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.

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:

https://www.transifex.com/projects/p/k9mail/

Contributing

Thank you for contributing! If you're unfamiliar with the code, start by reading the developer documentation

Please fork this repository and contribute back using pull requests.

Any contributions, large or small, major features, bug fixes, unit/integration tests are welcomed and appreciated but will be thoroughly reviewed and discussed. Please make sure you read the Code Style Guidelines.

Communication

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

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.