
Mutt email client 25 years old - job
http://mutt.org
======
schoen
My stepmother's cousin, Jean-Pierre Radley, was a Unix enthusiast and
consultant in New York City (mainly an early SCO adopter, who dabbled in Linux
later on). He taught me to use mutt in 1997 or so -- apparently not long after
it came out!

I'm still using mutt, although Jean-Pierre passed away three years ago.

[https://www.legacy.com/obituaries/nytimes/obituary.aspx?n=je...](https://www.legacy.com/obituaries/nytimes/obituary.aspx?n=jean-
pierre-radley&pid=187551978)

I believe that at the time he started using mutt, he was still getting some of
his e-mail over the declining UUCP network (as he was a tremendous UUCP
enthusiast and even provided commercial UUCP connectivity and support at one
point).

------
gorgoiler
Shout out to _davmail_ , an IMAP proxy that sits between mutt (or any other
IMAP client) and Outlook365.

Davmail handles Outlook’s _Modern Authentication_ , and launches a browser
when a 2FA challenge/response is required. The latest version of davmail can
cache authentication keys meaning you only have to go through 2FA once.

It’s been a real joy to return to mutt, in my latest job where Outlook is
deployed, after years of using Gmail.

[http://davmail.sourceforge.net/](http://davmail.sourceforge.net/)

~~~
nullwarp
Thank you for this - i know what I'm setting up Monday.

------
zadwang
I use mutt, mbsync, maildrop, and mblaze, mairix, msmtp, oauth2 with gmail. I
have local speed, two way sync, customized email filtering, fast searching,
vim editing, and multiple machine freedom. I am happy.

~~~
res0nat0r
I would love absolutely Mutt if it weren't for everyone in the world using
html email. I know you can view or strip html emails down to their essentials,
but it doesn't render properly enough where I can reply to everything at work
and not look like a fool because I'm missing some context. Too bad because
Mutt is amazing.

~~~
feanaro
You can just set up Mutt to open HTML mail in Firefox.

~~~
dancek
A great example of the HN use of the word "just".

~~~
feanaro
I'm not sure what you are implying. That it is hard? It is only a single line
added to the `mailcap` file:

    
    
        text/html; firefox '%s' &; test=test -n "$DISPLAY"; needsterminal;
    

After that's in place, you simply open attachments (via `view-attachments`)
and call `view-attach` (usually via a key binding) on the HTML attachment.

~~~
bravura
You just used the word “simply” in the same was as you used the word “just”.

The argument GP was making is that what is obvious to one reader may not be
obvious to another. So using the words “simply” or “just” or “obviously” does
not add information, except to signal that you feel the reader is ignorant if
they are not aware of what you’re explaining.

My PhD advisor always crossed these words out of my scientific writing, and I
think it was a good change to make.

~~~
sameerds
Strangely, that's entirely the opposite of what I understood from the original
comment. To me, "you can just use XXX" sounds like someone just told me that
"all you need is XXX; don't worry it's simple". The assumption is that the
HN'er saying it and the HN'er being said to share an implicit level of
expertise since we are all talking about mutt here.

~~~
feanaro
That's exactly how I meant it, FWIW.

------
ninjin
Thank you Mutt (and also NeoMutt for pushing the envelope), you have been my
e-mail client now for the last four years and as an academic that spends a
significant amount of time reading and responding to e-mail it is (somehow?)
the best option out there.

Setup:

* Mutt (I had slowdowns with NeoMutt)

* Vim with four e-mail specific lines in the `vimrc`

* fdm for retrieval and delivery rules

* Syncthing for synchronisation between machines (it is just files! although ~1,000,000 of them…)

* tmux to give me a single horizontal split so that I can browse and compose at the same time

* Notmuch for search

* Lynx to beat text/html into shape

* a tiny snooze shell script of my own coupled with an equally tiny unsnooze shell script that runs every few minutes on a box that is on 24/7

That is it, although I have to admit that I should clean up my `muttrc` at
this point as it is an outright mess. There are always more tweaks one could
perform, my next one probably being figuring out tagging and then sending
multiple mails to the snooze script. But one has to exercise a bit of self
restraint or get less rather than more work done due to “over tweaking”.

Gripes? Well, the configuration is very arcane at times and monolithic; you
wish you had a more modern, scriptable, and modular interface. If so, you
could probably cut down the time it takes to get something working by more
than half. I also suffer occasional CPU spikes, perhaps due to some weird
interaction with Syncthing when both monitor directories.

Other than that, it is very smooth and pleasant sailing. HTML e-mails in
particular hardly if ever pose a challenge after I got Lynx into the mix.

~~~
ohlookabird
> tmux to give me a single horizontal split so that I can browse and compose
> at the same time

Do you mind sharing how you do this? Browsing plus composing has been the one
thing that keeps annoying me for not being streamlined and typically I just
open multiple mutts/neomutts.

~~~
ninjin
I will not be much help I am afraid: `mutt` for the upper and `mutt -R` for
the lower.

~~~
ohlookabird
Oh okay, so that's basically what I do manually anyway then. Thanks.

~~~
dm319
Me too, but sometimes no need to make things more complicated. It's also a
feature of mutt - that I can fire several instances almost instantaneously and
use them for different purposes. I have to use outlook at work, and there's
nothing more frustrating than waiting for it to load up, and not being able to
view and search my old emails when I am composing emails (or is it when I'm
selecting contacts - I can't remember).

------
combatentropy
I sometimes daydream that everyone at work uses Linux in general and a text-
based email program in particular. It isn't too farfetched. When email took
off, I was in college, and we all used Pine.

Anyway, if you email me, it will arrive on my virtual private server, and I
will read it with Mutt.

~~~
debaserab2
I’ve never been more inclined than now to do the same thing.

How do you deal with spam?

How do you ensure your emails don’t get junk mailed?

~~~
acidburnNSA
Not parent, but I'm in the same boat with the self-hosted email VPS. I usually
use Thunderbird as a client though, but sometimes mutt.

\- SpamAssassin does a wonderful job after training it about once every 3
years. I get almost no spam.

\- I was able to send to most people from my VPS, but not Charter. Charter
blanket-blocked my ip block. So I ended up setting up SMTP forwarding via
sendgrid free tier (100 emails per day). Now I always get through.

~~~
watchdogtimer
I operate my own server and SMTP forward using Mailjet and have had zero
problems as well.

------
middleclick
I can't imagine doing email without mutt, without all the keyboard shortcuts I
have, and without vim as the editor. Thank you mutt. Just what an email client
should be. I wish there was better search support but that's about it.

~~~
codebook
i recently switched to Thunderbird from Neomutt + Notmuch + afew + gmailieer
combination. I was satisfied mutt's responsiveness, simplicity. But more and
more emails are only for html based and its conversion to text is horrendous,
I had to view Html at its own format. Then Thunderbird becomes a good
candidate.

~~~
yjftsjthsd-h
Similarly to sibling comment, I just set in mailcap:

    
    
        text/html;  elinks -dump %s; nametemplate=%s.html; copiousoutput

~~~
codetrotter
The really annoying thing is that some mail is multipart where the text/plain
is just “sorry, your email client does not support html”. Yeah thanks a lot
but it does, it’s just I have it set to prefer text/plain, because I don’t
want to look at the html dump version unless I have to.

If those people had simply sent _only_ text/html and not a useless text/plain
that only says that kind of stuff then everything would have worked fine.

Stuff like that makes me want to quit using mutt, and no fault of mutt mind
you.

But laziness has kept me to using mutt for reading my self hosted mail for
many years now.

~~~
jjav
That's mildly annoying indeed, but I just press v and select the html version
in those cases.

As you say, not mutt's fault.

~~~
dm319
Yes, and this is still usually quicker than firing up a full-fat email client
(as I often have a web browser open anyway).

------
samcheng
I remember the mind-blowing switch from pine to mutt. Then, a few years later,
gmail, which has to be about 20 years old or so.

I haven't used much mutt since.

~~~
jjav
gmail is such a huge regression from mutt (or even pine or elm).

I rank the email experience of gmail on par with /bin/mail. It's that useless.

I use mutt as an IMAP client for gmail when I can, that works mostly ok. At
current $DAYJOB they only allow gmail web client which is a complete disaster
of unusability.

So I mostly just zoom or slack people since gmail is so useless.

gmail is email written by those who have never used a proper email client and
don't really care about email anyway.

(gmail came out in 2004 - got the tshirt from the launch.)

~~~
dm319
As the search experts, I'm always surprised how poor and unreliable search in
gmail is. I also use mutt with my gmail account via mbsync. At least you get
to use gmail webmail. I have to use Outlook at work.

~~~
rawoke083600
Lol side-story... I once worked for Big-Multi-National i.t/startup company
they even have a stake in Tencent.

Their official mail policy was after 3 months we delete all your email.(You
had to save/archive) it yourself if you wanted to have access to it. Some
MSExchange setup.

The 'reason' back then was 'Some semi-high-level-executive lost his tablet
somewhere with important mail. I couldn't believe a company this big and
enough money to buy common sense and intelligence came up with this 3-month
rule as a solution to 'lost executive tablet'. They closed allot of their
local I.T/Startups in the last decade in South Africa.

~~~
dm319
Jeez, what an awful solution. I work in an academic environment and also in a
healthcare environment. There is a national 'secure' MSexchange service for
patient data, and we also use a local exchange server for within-hospital
communication. I have no idea how secure any/all of this is, but I tried to
add my 'national' account onto my regular outlook, and it broke everything. IT
support told me that I wasn't allowed to do this because it wouldn't be
secure. Which confused me given I used Outlook for confidential communication
within the healthcare provider. So I'm forced to use their webmail client
which is even worse than Outlook.

Not sure how email got into this mess. It should be simpler, and confidential
communication should just use something different IMO.

------
dang
If curious see also

2017
[https://news.ycombinator.com/item?id=14567074](https://news.ycombinator.com/item?id=14567074)

2015
[https://news.ycombinator.com/item?id=10182582](https://news.ycombinator.com/item?id=10182582)

------
kashyapc
Another extremely happy user of the following combination waves hi:

• Mutt

• OfflineIMAP (to be replaced with `mbsync`; OfflineIMAP is not being ported
to Python 3, unfortunately)

• Notmuch — for fast indexing, searching, and tagging e-mails

• Postfix — Mail Transfer Agent; offline queuing. Overall, it's one of the
most robust pieces of software; Postfix never failed even _once_ on me in
nearly six years.

~~~
dm319
Same here, though I moved to mbsync a few years ago and I need to check out
postfix.

It is such a great email client that I feel lost and walking through treacle
using anything else. I don't work in the tech field, but I have a lot of
emails to deal with. People come to me now to ask me if I can find specific
important emails from a while ago that they are after. Outlook is hilariously
bad at searching. I wish I could use mutt instead of outlook for my work.

EDIT: It looks like I'm using msmtp instead of postfix - any advantages to
switching over to postfix?

~~~
kashyapc
If 'msmtp' is working for your use case, just don't fix it. :-) (Although,
someone here might be able give a comparative rundown.)

I just deal with a _lot_ of email volume - large portion of it public mailing
lists; Postfix has been a trusted comrade.

------
stephenhuey
Noooooo WAY. I started at Rice in '98 and remember using Pine on the Sun
Solaris desktops spread all over campus. Of course I imagined Pine must be
ancient software, and when someone told me to switch to Mutt halfway through
college, I assumed it was just yet another super ancient program, not
realizing it had been released when I was in high school!

~~~
pessimizer
This has definitely been added to my list of things that I thought were far
older than they were.

------
mbreese
It's probably time for my annual attempt to convert over to using a mutt-based
email workflow. I've always been happy with the mutt setup, but I think the
majority of my problem is dealing with importing my existing Gmail and (work)
Office 365 accounts. Sometimes I've synced the data to my laptop (last time I
even had it all running in a container). But I still need to access enough of
my email from my phone that I've found the mutt setup too cumbersome, even
when using IMAP.

Does anyone have a good setup with multiple accounts or using both mutt with a
mobile email client (iOS)?

~~~
RamenDevourer
mutt-wizard makes it very easy to setup mutt/neomutt to make it work with
gmail and other services. It sets up encrypted offline versions of your mail
and sets up most of the mutt environment for you:
[https://github.com/LukeSmithxyz/mutt-
wizard](https://github.com/LukeSmithxyz/mutt-wizard)

------
IgorPartola
One of the major reasons I use Gmail in the browser is because it’s in the
browser: it’s always on the same tab and I can switch to it when I want to
check it. I used Mutt (unsuccessfully) a few years ago since my other window
that’s always open is a terminal emulator.

I wonder: should I fire up a Linux emulation in my browser and run Mutt inside
that? I’m sure things have gotten fast enough that this would actually work.

~~~
awesome_dude
I use mutt for Gmail in my terminal, the setup is fairly easy and documented
across blog posts

example muttrc =========================================================

set imap_user = '<username>@gmail.com'

set imap_authenticators="oauthbearer"

set imap_oauth_refresh_command="~/.mutt/oauth2.py --quiet
--user=<username>@gmail.com --client_id=<id from
google>.apps.googleusercontent.com --client_secret=<secret from google>
\--refresh_token=<token from, you guessed it, google>"

set smtp_authenticators="oauthbearer"

set smtp_oauth_refresh_command="~/.mutt/oauth2.py --quiet
--user=<username>@gmail.com --client_id=<id from
google>.apps.googleusercontent.com --client_secret=<secret from google>
\--refresh_token=<token from google>"

set ssl_starttls=yes

set ssl_force_tls=yes

set imap_pass = 'my really hard to guess gmail password'

set from='<username>@gmail.com'

set realname='Fancy pants name'

set folder = imaps://imap.gmail.com/

set spoolfile = +INBOX

set record = "+[Gmail]/Sent Mail"

set postponed = "+[Gmail]/Drafts"

set trash = "+[Gmail]/Trash"

set postponed="imaps://imap.gmail.com/[Gmail]/Drafts"

set header_cache = "~/.mutt/cache/headers"

set message_cachedir = "~/.mutt/cache/bodies"

set certificate_file = "~/.mutt/certificates"

set smtp_url = 'smtp://<username>@gmail.com:<my really hard to guess
password>@smtp.gmail.com:587/'

set smtp_pass = 'my really hard to guess password'

set move = no

set imap_keepalive = 900

#refresh every 10 seconds

set timeout=10

set mail_check=20

# allow mutt to open new imap connection automatically

unset imap_passive

# vim!

set editor=vim

# email sorting

set sort=threads

set sort_browser=reverse-date

set sort_aux=last-date-received

# handy macros

macro index gd "<change-folder>$postponed<enter>" "go to drafts"

macro index gs "<change-folder>$record<enter>" "go to sent"

macro index gi "<change-folder>$spoolfile<Enter>" "go to inbox"

macro index gt "<change-folder>$trash<enter>" "go to trash"""

macro index tb s+[Gmail]/Trash

set noconfirmappend

set quit=ask-yes

=========================================================

~~~
tambourine_man
I still use POP cause I’m paranoid. Does imap guarantees that it downloads and
stores all mail indefinitely?

~~~
peterwwillis
Sure, but the problem of storing messages indefinitely isn't from the
protocol, it's from the client. The client may need to verify if it's actually
seen a message before and keep a local index of them; it may need to double
check the message still is what it expects before it tries to delete it; it
needs to present you with options on how to handle message deletion; etc.

POP3 is actually _less_ reliable at keeping messages indefinitely than IMAPv4
is, due to limitations of the protocol. Some clients have defaults which
simply delete the remote copy after download (or reading, which is different),
but again that's not the protocol's fault.

------
steffan
For console email, I still use Alpine. Can anyone elaborate on the benefits
(if any) of switching to Mutt?

~~~
dsr_
mutt is the best MUA for dealing with large quantities of email. The key to
this is the limit/tag workflow.

(I wrote it up a few years ago here:
[https://blog.randomstring.org/2016/09/26/secrets-of-
mutt/](https://blog.randomstring.org/2016/09/26/secrets-of-mutt/) )

In brief, you use the limit command to see only the email you are interested
in, then use the tag command to do something to those specific messages. Both
limit and tag use the same pattern language to specify From, Subject, date
ranges, message numbers, or more esoteric searches.

The only thing mutt is not great at is searching multiple mailboxes, and it's
easy to integrate an external tool (notmuch, maildir-utils, mairix...) to do
that search and link the results into a temporary maildir that mutt will then
work on.

~~~
aidenn0
I find bower to be better than mutt at dealing with large quantities of email,
but mutt is better at everything else. bower can also run locally with a
mailbox on a remote, which allows things like easy seamless opening of
attachments that don't work as well in a terminal (images, PDFs, &c.).

~~~
dsr_
Mutt works with 250,000 message maildirs. Does bower? Conveniently?

~~~
aidenn0
My largest maildir only has 80k, but bower works with it quite conveniently.

------
spicymaki
Amazing, I feel like I am getting old. I remember using Pine in college and
changing over to Mutt.

------
mattbillenstein
I still use mutt (with [https://mailinabox.email/](https://mailinabox.email/))
-- and I like how it works, but the annoying thing is html-only emails -
finding that unsubscribe link is so hard sometimes.

~~~
wander_homer
In such cases I just open the html file in my browser from mutt. Always worked
so far.

~~~
codebook
It worked to me. But honestly annoying. I had to keep opening the browser for
half of the emails.

------
fouc
I believe Paul Graham was a mutt user at the time of his spam article[0], and
possibly still is.

[0] [http://www.paulgraham.com/spam.html](http://www.paulgraham.com/spam.html)

------
toadi
I actually stopped using email for private communication. Most emails are just
invoices, confirmations or license keys. Gave up on email few years ago.

Professional I use email for mostly the same and for official trace
communication....

------
MayaFey
I so happened to have spent yesterday afternoon figuring out mu4e on Emacs,
which I'm new to. Figured out IMAP but not sending yet. Worked with gmail with
a very simple config file.

I've tried doing my own mail but it's very hard.

------
upofadown
Mutt is the best PGP client bar none. Just make sure you use the GPGME
version.

------
jjav
Thanks mutt! I've been using it for most of those 25 years. Thank you.

------
em-bee
the best times with mutt were the days where we were hanging out with michael
elkins (me) at the linux user group meetings in L.A. during which i came up
with this joke:

"i didn't write mutt, it was me"

i used mutt until a few years ago when i switched to sup.

------
ggm
I solved a problem with nmh last week. That felt good (finding ten emails by
string search from a .mbox format archive and making another mbox archive from
them)

I am pretty sure mutt would have done it too, I used mh because I had the
muscle memory

------
xvilka
Would be nice to modernize it by porting to Rust, thus reusing some of the
libraries for network protocols, cryptography, file formats. It will allow
developers to focus on the important things.

~~~
dsr_
It's open source, so you are totally welcome to do that thing. Enjoy yourself.
Please call the resulting program something related to but not identical to
mutt, such as rustmutt, rustydog, mutt-ferric-oxide, or whatever else makes
you happy.

