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
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 http://www.mutt.org/doc/manual/manual-5.html
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:
Where <key> is the stuff from ~/.ssh/html_mail_key.pub on the mutt machine.
2.2. Create $HOME/bin/open_html_mail.sh:
#!/bin/sh cat >/tmp/last_html_mail.html DISPLAY=:0 firefox /tmp/last_html_mail.html
2.3. chmod +x $HOME/bin/open_html_mail.sh
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:
- Use "ssh -R2022:localhost:22 ..." to log into the mutt machine - change port numbers if needed.
- 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"
Render "text/calendar" type
Be aware, when copy/pasting his script, you may get bit by funny whitespace issues and have to more or less remove them and replace with your own tabs.