Repository navigation
Releases: harshalambani/ChatMailSync
Release list
v3.0.2
v3.0.1
Build fix so the app builds on newer Java versions; no change in how the app works.
Chat Mail Sync 3.0.0
Chat Mail Sync 3.0.0 redesigns Settings and tidies up a few screens. Your settings, history and syncs carry on exactly as before.
- Settings and Advanced (UX-01): each setting is a row with an icon and a one-line summary of its value; choices that were dropdowns open as small dialogs with Cancel. Help and the privacy policy have their own Help screen, and Run setup again has a back button.
- Me row (UX-03): Home shows your name as soon as a sync learns it, not only after the sync ends.
- Health cards (UX-04): the battery and notification cards say plainly what is wrong and how to turn them off; they stay hidden when automatic sync is off.
- Licences (UX-05): the open-source licences text now names the GPL-3.0 LICENSE file instead of a Settings section that does not exist.
Needs Android 11 or newer.
Install: download ChatMailSync-3.0.0.apk below, or let Obtainium pick it up. It is signed with the same key as 2.9.2, so it installs over it directly. Moving between builds signed with different keys (for example to F-Droid) needs a backup first: see Switching builds.
Chat Mail Sync 2.9.2
Chat Mail Sync 2.9.2 recognises renamed contacts. When a chat export looks like an earlier chat under a new name or a newly saved contact, the app asks once whether it is the same chat, and nothing is mailed twice.
- Renamed chats (BUG-05/06): linked to their earlier history after you confirm.
- Failed answer (BUG-17): if saving your answer fails, you now see a message and can answer again.
- Waiting chat (UX-02): a background sync that is waiting for your answer shows one notification.
- Question stays put (BUG-18): a tap outside no longer hides the question; a waiting chat shows on Home with an "Answer now" button, and a sync you start yourself says when it held a chat.
- Leftover space (CUT-05): space left over from older versions is freed on the first start.
Needs Android 11 or newer.
Install: download ChatMailSync-2.9.2.apk below, or let Obtainium pick it up. It is signed with the same key as 2.9.1, so it installs over it directly.
Chat Mail Sync 2.9.1
Chat Mail Sync 2.9.1 is a much smaller download: about 3 MB instead of 23 MB. The Python runtime the old sync engine needed is no longer packed into the app. Nothing else changes for you; your settings, history and syncs carry on exactly as before.
- The Open-source licences screen (Settings) now lists only the components the app still uses.
Needs Android 11 or newer, as 2.9.0 did.
Install: download ChatMailSync-2.9.1.apk below, or let Obtainium pick it up. It is signed with the same key as 2.9.0 and 2.2.0, so it installs over either directly.
v2.9.0
Chat Mail Sync 2.9.0 replaces the app's sync engine. The engine is now written entirely in Kotlin, and no Python runs inside the app any more.
Needs Android 11 or newer. Phones on Android 7 to 10 stay on 2.2.0, which keeps working.
Upgrading keeps your history. The app keeps its record of what it has already sent, so nothing is mailed twice. Backups made with 2.2.0 restore into 2.9.0.
What changes for you:
- Photos and files sent with a caption are now attached. Before, the caption reached your mailbox but the file did not. Messages already synced are not sent again.
- Cancel stops promptly. A sync now stops between emails instead of finishing the whole chat first. The stopped run shows how many messages went out, and it is not counted as a failure.
- A force close after Cancel stays stopped. The sync does not start again on its own.
- Each chat export is deleted from your phone once its sync completes. An export that turns out to hold no messages is kept, and the app tells you so.
- The end-of-sync notification stays until you dismiss it.
- Multi-part days are easier to find: each email's subject carries its "Part k/N" label.
- Restoring a backup is stricter: an oversized or malformed backup is refused instead of half-restored, and the message cut-off date comes across with it.
- A new Open-source licences screen (Settings) lists the open-source components the app uses.
- The privacy policy is rewritten to describe what 2.9.0 keeps, where it keeps it, and how to delete it. It is in the app and at https://chatmailsync.ambani.tech/privacy.html
Install: download ChatMailSync-2.9.0.apk below, or let Obtainium pick it up. It is signed with the same key as 2.2.0, so it installs over 2.2.0 directly.
v2.2.0
Six batches of work since the 2.1.5 / windows-final tag:
- Batch 1 -- chat-sender tracking and a self-sender state field, the
groundwork for working out which name in an export is the app user's own. - Batch 2 -- a Me row on the masthead, Me name entry moved into its own
screen, a Me strip on the chat detail screen, and a one-time Home banner
the first time the app learns the user's name from an export. - Batch 3 -- easier app-password entry during setup, and promoting the
common mail providers (with AOL added) ahead of the rest of the list. - Batch 4 -- a four-step first-run setup that replaces the earlier,
longer walkthrough. - Batch 5 -- Basic and Advanced settings sections, with follow-up polish
(back-button labels, chip wrapping) and a bounded "Test connection" that
always returns instead of being able to hang. - Batch 6 -- "Save & connect" made to share that same bounded,
exactly-once connection check as "Test connection"; the dead
fadingEdgesHorizontalhelper removed; the FAQ kept in sync between
HelpScreen.ktanddocs/user-guide.md, and the user guide's leftover
Windows-desktop wording corrected to describe the Android app; version
bump to 2.2.0 (versionCode 42). - Batch 7 -- Backup & restore moved out of the Settings row list into its
own screen, reached the same way as Mail account, Me and Advanced; its
Settings row now carries a status pill ("Backed up<date>", "Backup due"
or "No backup") so the state is visible without opening the screen. - Batch 7 follow-up -- fixed a bug (confirmed on the Nord) where the Mail
account screen and Settings kept showing the pre-restore mailbox (e.g.
Gmail with a blank email) right after a successful restore, even though
the restored settings were already correctly saved -- reopening the app
was the only workaround, and pressing "Save & connect" without it would
have overwritten the restored account with defaults. Also added a "Moving
from another phone? Restore from a backup" option on the very first screen
of a fresh install, so setting up a new phone from a backup no longer
means clicking through to Settings first; a successful restore there can
continue straight into mail setup with the restored provider and email
already filled in. - Batch 7b -- a restore during first-run setup no longer walks the user
through "Step 3 of 4" and "Step 4 of 4"; it finishes at the app-password
step and lands on Home, the same as skipping mail setup for later. Every
successful restore, on first run and on the Backup & restore screen, now
shows an inline summary of what came back (chats, already-sent count,
cutoffs, mail account and the settings the bundle carried) and what still
needs redoing (app password, watched folder) -- never a dialog or toast.
The Windows desktop app is not part of this or any future release; it ended
at v2.1.5 (tag windows-final), per docs/RELEASING.md.
🤖 Generated with Claude Code
v2.1.5 - Your own messages now appear as yours
Your own messages now appear as yours
Until this release, every message in an archived chat was drawn as if somebody
else had sent it — the whole conversation collapsed onto one side.
A WhatsApp export does not mark your own messages. It writes your profile name
in the sender position exactly as it writes everybody else's, and the app was
looking for the literal word "You" instead.
What changed. The app now works out which name is yours from a one-to-one
chat: that export names the other person in its own filename, so whichever name
is left over is necessarily yours. Sync any one-to-one chat and it is worked out
once and used everywhere afterwards, group chats included. Group chats never
decide this on their own, and nothing is ever guessed from how often a name
appears.
You can see it, and you can change it. Settings now has a Your messages
section that states the name the app is treating as yours and where that name
came from. Type your WhatsApp profile name there to set it by hand; clear the
box to hand the decision back to the app.
Emails already sent are not redrawn. Setting the name changes how future
emails are laid out, and the app will not re-send a message it has already
archived. To lay a chat out again correctly, use Reset on that chat after
setting the name.
Also in this release
- A new FAQ entry covering all of the above, on Windows, Android and the website.
- Privacy policy "Last updated" line refreshed for this version. No policy text
changed.
Downloads
| Android | ChatMailSync-2.1.5.apk |
| Windows installer | ChatMailSyncPortable_2.1.5_English.paf.exe |
| Windows portable zip | ChatMailSyncPortable_2.1.5.zip |
v2.1.4 - Outlook.com removed
Outlook.com is gone, because it never worked
Chat Mail Sync offered Outlook.com as a destination and said so in the app, the docs, the website and every store listing. That claim was false for the entire 2.x line.
Microsoft switched basic authentication off for personal Outlook.com, Hotmail, Live and MSN mailboxes on 16 September 2024; work and school Microsoft 365 lost it earlier. They all accept OAuth2 only for IMAP now, and this app does no OAuth at all — the Google sign-in that used to be here was removed in 2.0.0. Choosing Outlook produced a login failure that no app password could fix, and the old error message sent the user to an administrator who has no setting that would help.
What changed
- Outlook.com removed from the provider list on Windows and Android.
- If you had Outlook saved, your settings now read as Custom, with the host you already had left in place and the field unlocked — nothing is swapped for another provider's server behind your back. It still will not connect; nothing can make it connect. Use a mailbox that still issues an app password.
- A Microsoft mailbox now fails honestly. The connection test says the mailbox cannot be used with this app and names the ones that can, instead of suggesting an administrator can fix it. Matching is on whole domain names, so a lookalike host does not trigger it.
- Every claim corrected — in-app Help & FAQ, in-app privacy text, README, user guide, website, and the store listings.
Working destinations
Gmail, Yahoo, iCloud, Fastmail, or any IMAP server that issues an app password.
Downloads
| File | Size | SHA-256 |
|---|---|---|
ChatMailSync-2.1.4.apk |
21,407,339 | 22be1aa1a358e61913276f523f1cad234ed37be8c7b3eb0e191776f378a6d699 |
ChatMailSyncPortable_2.1.4_English.paf.exe |
12,762,765 | 43273fb0792f41a3d27a0eca52455fcdc109499351ddcaf014457a3492b56e51 |
ChatMailSyncPortable_2.1.4.zip |
16,431,076 | 9284f745ff3ee96f496ebb06e8c47b08851ecff00770b0f509455e4c1f40f1ac |
APK versionCode 40, signed with the same certificate as every previous release (SHA-256 096ca121e8de29d466cc2f55e20e6f4d045c0ffefc72cd39e5758eb8fb905095), so it installs as an update.
Python suite 553 passed; Android unit tests green.
v2.1.3 - the privacy policy is in the app
The privacy policy is now carried in the app, not linked to
Indus Appstore held the previous build twice on the identical reason: the privacy policy link is "not accessible inside the app". The link was there, in Settings, and the hosted page answers 200. That points at reachability rather than at the address, so this release closes every route to that report.
The policy is in the app. A new Privacy policy screen renders the full ten-section policy from text the app ships with. No browser, no network, no permission. The hosted page is still offered underneath it, as the copy rather than the original.
Two ways in. Settings > About and Help & FAQ, on both Android and Windows.
A crash is fixed. Every "open a link" action was unguarded, and the app declares no browser query. On a device with no browser installed the app did not fail to open the link - it crashed. It now shows the address instead.
Windows is at parity. The same screen, the same ten sections, the same words. The Windows copy is generated from the Android source rather than transcribed, and a test re-parses both, plus the hosted page's headings, so they cannot drift apart unnoticed.
Downloads
| File | For |
|---|---|
ChatMailSync-2.1.3.apk |
Android, arm64. Requires Android 7.0 or later. |
ChatMailSyncPortable_2.1.3_English.paf.exe |
Windows, PortableApps.com installer. |
ChatMailSyncPortable_2.1.3.zip |
Windows, portable zip - unpack and run. |
Signed with the same key as every previous release: SHA-256 09:6C:A1:21:E8:DE:29:D4:66:CC:2F:55:E2:0E:6F:4D:04:5C:0F:FE:FC:72:CD:39:E5:75:8E:B8:FB:90:50:95.
versionCode 39. Python 538 tests passed, Android 47 passed.