I just can’t find a decent email client that looks like it’s from the last 20 years. Geary and Evolution both appear to be pretty modern but something about using Gmail with a Yubikey just doesn’t work and neither of them will connect to my account. Both on Fedora and OpenSUSE. Thunderbird works but it’s so old fashioned and Betterbird doesn’t look much better. What’s everyone else using?
Last time I tried it, it had major issues with folders (for example, folders didn't refresh often enough, and notifications weren't shown for emails that are sorted into folders). I tried to fix it myself, but gave up after I couldn't figure out why it wasn't syncing folders properly: https://github.com/Foundry376/Mailspring/pull/2308
Notifications on folders a have been added (I sort all my mail into a plethora of folders, keeping my inbox empty, so for me this is non-negotiable), and they all sync with a single f5 now.
Can you choose which folders use real-time push vs which folders use polling?
I'm afraid not. I'm pretty sure the entire account uses polling. I'll usually open the app and hit F5 to quickly poll for results, otherwise I'm waiting for the next sync.
Having said that, the unread counter works fine for sub-folders:
Edit: I was wrong, Mailspring uses the IMAP IDLE extension to wait for new mail delivery. Still doesn't stop me from spamming F5 when I'm waiting for new mail to arrive.
I was wrong, Mailspring uses the IMAP IDLE extension to wait for new mail delivery
The reason I was asking about the folders is that IMAP IDLE only works for one folder at a time. If you want real-time push for 10 folders (for example), it has to open 10 separate IMAP connections. Because of this, clients usually either only enable push for the inbox, or let you choose which folders to enable it for.
There is no such setting that I'm immediately aware of - but I am automatically getting messages for my folders. So I'm assuming it's doing something in the background: most likely a periodic sync for the entire account.
Definitely doesn't sound like the behavior you wanted, my bad. But, at least there are notifications on the folders once mail is received. 😅
Mailspring uses a fairly basic syncing algorithm, which runs on two threads with two open connections to the mail server. Within each thread, work is performed synchronously.
Background Worker: Periodically iterates over folders and (depending on the supported IMAP features) uses CONDSTORE / XYZRESYNC to check for mail or performs either a "local" or "deep" sync of part of the folder's UID space.
Foreground Worker: Idles on the primary folder and wakes to syncs changes. Also wakes to perform other tasks, like fetching message bodies the user clicks.
So the foreground worker only idles on the primary folder, but it does slowly iterate over all folders in the background.
No settings have been added for this functionality (that I'm aware of).
Edit 2: Went back and read your original comment; hadn't noticed the PR was yours. If that's the case then you're probably aware of how the sync works anyway. My bad if I've posted stuff you're already aware of.
Agreed on Mailspring, especially if OP wants a modern interface (although I think the new Thunderbird looks fine).
The only thing missing from Mailspring for me is seeing what folders my emails are in when I run a search. Otherwise, it's the only non-CLI client I've found that let's me use the keyboard to select multiple emails and move them to a folder, something I do in Gmail. If anyone knows of others, let me know! I've tried Claws, Evolution, Geary, KMail, and Thunderbird in addition to Mutt and aerc in hopes of finding something to replace Gmail...