From WTFwiki
Revision as of 21:53, 4 January 2013 by Jontow (talk | contribs) (14 revisions)
Jump to navigation Jump to search

Render HTML email when there's no text/plain alternative

If there's no text/plain version of an email component, mutt defaults to just rendering the html, regardless of the mailcap file.

To make it do something more useful:


text/html; lynx -force_html -dump %s ; copiousoutput


auto_view text/html
alternative_order text/plain

One downside of this, is that lynx no longer can run interactively (you can't follow links from a html email). Instead lynx will print out a references section at the bottom with all the embedded links.

More info can be found at

Open HTML mails in a browser on another machine

1. On your mutt machine:

1.1. Generate passwordless ssh key (don't worry we'll limit the access):

ssh-keygen -f ~/.ssh/html_mail_key

1.2. Add to .muttrc:

macro pager o "v/html<enter>|ssh -i ~/.ssh/html_mail_key MACHINE<enter>q" \
        "View HTML mail in Firefox on MACHINE"

where MACHINE is your browser machine name. I've chosen o as the keybinding here.

2. On your browser machine:

2.1. Add to $HOME/.ssh/authorized_keys:

command="/home/yourname/bin/" <key>

Where <key> is the stuff from ~/.ssh/ on the mutt machine.

2.2. Create $HOME/bin/


cat >/tmp/last_html_mail.html
DISPLAY=:0 firefox /tmp/last_html_mail.html

2.3. chmod +x $HOME/bin/

That's it. Add also "unset wait_key" to your .muttrc if the extra keypress annoys you.

Alternative solutions for those behind NAT

So you think the above is a great idea, but you're behind NAT? Or you're switching machines too often? Here's a solution, changes are only minor:

  1. Use "ssh -R2022:localhost:22 ..." to log into the mutt machine - change port numbers if needed.
  2. The mutt macro changes to this
macro pager o "v/html<enter>|ssh -o \"NoHostAuthenticationForLocalhost yes\" -i ~/.ssh/html_mail_key -p2022 localhost<enter>q" \
       "View HTML mail in Firefox"