top | item 46140579

Putting email in its place with Emacs and Mu4e

110 points| eamonnsullivan | 2 months ago |eamonnsullivan.co.uk

54 comments

order

neonnoodle|2 months ago

I wish there were a good workaround for those of us condemned to MS365/Outlook. Outlook desktop is very unstable and buggy, and Outlook web is full of weird antipatterns. For example, it is absurdly annoying to get a direct link to an e-mail message in Outlook web. If it were easy, I would just pass that url to org-protocol in the browser and keep my tasks organized with backlinks to the e-mails that originated those tasks or projects.

As it is, my emacs and e-mail are almost fully separated due to (I'm assuming intentional) lack of a simple method of interoperability.

gloghmalogh|2 months ago

I have been able to use mu4e with my o365 account using davmail (https://davmail.sourceforge.net/). I will say it was a bit of a pain to get authentication right, and involved a lot of trial and error.

isaachinman|2 months ago

Check us out, we support Outlook and any other possible IMAP/OAuth provider. Cross platform, offline-first, and instant syncing:

https://marcoapp.io

komali2|2 months ago

I was in this world for like 8 years but switched to Thunderbird after one too many emails didn't send because I missed some notification or something in mu4e, and too many emails weren't rendering well in Emacs, and etc little problems that cropped up. I needed my email to Just Work, not be another aspect of my procrastination machi- sorry I mean, my IDE.

ubermonkey|2 months ago

The need for email to Just Work is one reason I've never let emacs anywhere NEAR my email flow.

Everything in emacs becomes a Project.

abbefaria27|2 months ago

I tried setting up mu4e once. It wasn’t worth it. It took me literally a few hours of reading random blog posts to figure out the configuration, and that was only to download email. Never got around to setting up sending them, which is a totally separate process. Even then, there were lots of issues. First, it’s slow. Loading an email had a noticeable pause and was slower than GMail. Also, you can’t avoid HTML email nowadays. There’s a very basic render, but expect all the formatting to be wrong. I also ran into rate limits from Google because we get way too much email at work. That’s not mu4e’s fault, but just another obstacle. Can’t really have my inbox be one hour behind real time.

kkylin|2 months ago

I have been using mu4e for years, and am generally happy with it, and yet... I've never recommended it to anyone else. Unlike, say, org-mode or magit, which I'd happily evangelize.

The pain points are what other commenters have said:

- I don't find the default config a good fit for me, and run it heavily customized. As someone said everything in Emacs turns into a project...

- Performance can be an issue, especially indexing new mail (and especially if you like to lug around a copy of most of your emails locally as I do). On a laptop while traveling this used to be more of a problem, but newer versions are notieably quicker and newer laptops have better battery life.

- HTML rendering isn't great. Thankfully I don't get too many important messages that isn't just plain text. This might be a reasonable use case for xwidget-webkit though I'd imagine there are security/privacy issues to work out. (Another Emacs project -- yay!)

When I started I thought it would be an efficient way to get through lots of emails, and it has been for the most part. I'm just not sure I've saved time overall unless one counts the hours configuring it as "entertainment / hobby" rather than "work".

eamonnsullivan|2 months ago

This was my second attempt to get email working on Emacs and I gave up the first time, too. I persisted this time and I _think_ it will pay off. There is the obvious danger of this becoming another "project", but I'll make a note to check-in again in six months. It's an experiment!

I've not seen the other things you mentioned. I only check for email every 10 minutes, but opening and (especially) searching for emails seem much faster than doing it in Gmail. Plus, I can do searches across email accounts, like all unreads across all three accounts. That was definitely slower in the online clients.

Finally, there's a quick ('a' then 'v') way to just open a message in a browser if the HTML is too thick.

SoftTalker|2 months ago

> Can’t really have my inbox be one hour behind real time.

Why not? Does your job mandate that you watch your inbox constantly, and respond immediately to all messages? How do you get anything else done?

dietr1ch|2 months ago

> Also, you can’t avoid HTML email nowadays

This is the reason I haven't tried all the email tools that seem fun to play with, but not worth it :/

DiscoMinotaur|2 months ago

I'm also using Mu4e for personal email but stymied by Exchange auth for work email. I've been looking into using DavMail as an Exchange gateway, does anyone have experience with this?

https://davmail.sourceforge.net/images/davmailArchitecture.p...

pfortuny|2 months ago

I have been usong mu4e with davmail in Exchange mode for my Uni mail. It was a pain to discover how to do it but the FAQ has been updated since and it works like a charm. Deop me a mail at gmail if you wish.

sir|2 months ago

Re: the OAuth issues: to remove some of the hassle of this, you can use my proxy/relay to allow any IMAP (or POP/SMTP) client to be used with a “modern” email provider, regardless of whether the client supports OAuth 2.0 natively: https://github.com/simonrob/email-oauth2-proxy. No need for your client to know about OAuth at all.

jwr|2 months ago

Thanks, keeping this as a reference — I'm trying to find some time to try mu4e. I used Gnus for many years, then switched to Apple Mail.app, but with the gradual decline of MacOS (and Mail.app) I'm looking to switch back.

I remember the two main reasons I switched from Gnus: 1) there was no good reliable search, 2) I couldn't drag&drop attachments into E-mails and back so I was spending a lot of time pointing to files. I hope both things have improved since then.

toprerules|2 months ago

I switched to mutt, started getting through my email in half the time in took me using a GUI, and never looked back.

Being able to write simple expressions to filter email, mass delete, and avoid embedded javascript are killer features. I can run all html through w3m and still have nicely rendered emails.

I still use a phone app for on the go browsing, but during work hours I have mutt open alongside neovim all day long.

heintje_ghulam|2 months ago

I use offlineimap3 (https://github.com/OfflineIMAP/offlineimap3) to download email that I then read with mu4e. To make it work with my email provider I need to place a cert_fingerprint value in the .offlineimaprc configuration file. This used to change once a year, but now the value changes every 47 days (https://www.digicert.com/blog/tls-certificate-lifetimes-will...).

Has anyone figured out a solution to keep this value updated? One issue is that I'm never sure when the new TLS certificate has rolled out.

tmtvl|2 months ago

I use isync (mbsync), mu, and Emacs for my e-mail needs and it work fine. Both isync and mu4e needed a bit of configuration (and Emacs itself needed one change to stop automatically breaking lines), but it's been working well for years now. I previously used Thunderbird but its editor was garbage, so then I tried a few things (neomutt and I believe something called alpine or something like that) before settling on Emacs. I tried Notmuch, but it didn't work so well with the upstream mailboxes.

presto8|2 months ago

I have a very similar setup, but using gnus, mbsync, notmuch, and afew. All mail stays on the servers (including a self-hosted dovecot server on my home network). I manage about 10 email accounts with very little effort. It's easy to get extremely customized behavior by overriding defaults with elisp. Previously I was using Thunderbird, but I feel my emacs setup is much more productive.

mickeyp|2 months ago

Have you tried using the hardcoded Thunderbird (or similar) oauth credentials to authenticate to Google et al? You can also use davmail to proxy your requests to Office 365 / Exchange and it handles oauth also.

eamonnsullivan|2 months ago

I tried both. The error from davmail suggests it was specifically blocked/prohibit and I failed using actual Thunderbird.

qazxcvbnm|2 months ago

By the way, anyone have experience using emacs to analyse and visualise data (think spreadsheets and charts)? I’d really like to be able to use it to view any sort of data I happen to have.

dima55|2 months ago

I use the `vnlog` and `feedgnuplot` shell tools HEAVILY to do data analysis and visualization. In emacs, these work well in shell-mode or in any buffer with `shell-command-on-region` (M-|). Not strictly emacs, but works great.

deltasquared|2 months ago

Yes! Org-table is a spreadsheet. org-babel will run SQLite and gnuplot.

sndean|2 months ago

My first thought was Emacs Speaks Statistics (ESS) to do this in Emacs via R, but I bet there are many alternatives.

Stolpe|2 months ago

I read eMule and got nostalgic

chuckadams|2 months ago

I read MULE and got nostalgaic for the game, then remembered the same-named thing in emacs, which made me happy that nowadays we have unicode instead.

nickwrb|2 months ago

If you need to handle OAuth, I have a service to help with that: https://auth-email.com

Authorize once in a web dashboard, then use your accounts as if they didn’t need OAuth (ie. normal IMAP, POP3 or SMTP).