💾 Archived View for sdf.org › mutoshack › log › mh-e.gmi captured on 2022-01-08 at 13:41:48. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-12-03)

-=-=-=-=-=-=-

MH-E is weird and fun

April 14, 2021

Hey, it's me, Muto! I recently made a whopper of a post on my blog (muto.ca) about all the different Emacs mail clients, but the one that stood out to me the most was MH-E.

MH-E

MH-E is built-in to Emacs. It's the the frontend to MH (MailHandler), which is a collection of small unixy programs to manage email. It's debatable, but I think 'nmh' is the best MH implementation available!

nmh has support for getting mail via POP, and you can easily specify an MTA (like msmtp) to use! It also has its own simple SMTP facility, but I haven't tried it.

nmh was last updated fairly recently: 2018! Considering how long nmh has been around, that's quite impressive.

Setting up nmh

The nmh config file is at ~/.mh_profile and mine looks like this:

Path: mail
Local-Mailbox: Emily <me@muto.ca>
send: -mts sendmail/pipe -sendmail /usr/bin/msmtp
inc: -host mail.muto.ca -user me@muto.ca
Editor: nano

This is /all/ i need for a full system!

It took a while to figure out (maybe 3 days) because, let's face it, I'm not the smartest, and nmh might not have the best documentation in the world, but just look at how /clean/ this is!

Using MH-E

You can run 'M-x mh-nmail' from Emacs to start MH-E. You can perform some handy actions from MH-E:

MH-E is simple, but a bit more robust than, say, rmail. I still really like rmail, but people bully me for using mbox files (which rmail works with).

Configuring MH-E

MH-E has support for stuff like threads, which we can enable from init.el!

Another teensy problem is that, when you reply to an email, the recipients's email address isn't automatically put in the "To:" field, but we can fix that, too:

(setq
  mh-reply-default-reply-to "to"
  mh-show-threads-flag t)

Drawbacks

Everybody loves maildir. People get mad at me when I don't use maildir because maildir is nice. MH's format (simply called "MH") is /similar/ to

maildir, as in it stores mail in separate files (which is better than mbox's way of sorting, at least), but it still predates maildir and is incompatible.

I wonder if there's an MH implementation that solves this by using Maildir instead of MH. Maybe it wouldn't be much work to get mblaze or something similar working as a drop-in

replacement to nmh!

I'll work on all this later. For now, I'm not having any issues with MH, and /at least/ it's a bit more unixy than rmail!

Also, MH-E has a particularly not-that-great way of dealing the headers... Particularly, sometimes there are loads of weird headers that aren't relevant to you, so most mail clients say "ignore ALL headers except for these few". What MH-E does is say "ignore header x, ignore header y, ignore header z" etc, etc, etc. There's a huge blacklist with a zillion headers in it that MH-E uses to tell which header should be ignored.

But like I still come across headers that aren't in the list. I feel like this is a really weird thing.

/Also/ MH-E converts emoticons to emojis. I don't like that. I prefer emoticons. Emoticons are cute! You can change this in the settings, but it's weird to have by default.

Also MH-E does not use the standard Emacs sendmail-user-agent as the "compose" buffer; instead, it uses its own special MH-E buffer, which, mind you, does not read from the "~/.mailrc" file!

Conclusion

I already talked a bit about MH-E on my website, but I wanted to talk MORE about it because I think it deserves a bit MORE love than the rest, especially considering how underratted it is!

Anyway, I'mma head on out and go to sleep and uh maybe eat a snack and stuff.