Question

Sometimes I receive email attachments whose mimetypes are not in my mailcap file. To open such attachments from mutt, I usually select the attachment from the list, hit s to save the file to /tmp, and then use ! to open the saved file with whatever application suits, using a shell command.

Is it possible to automate this with a mutt macro, which simply saves the selected attachment to /tmp, queries for an application name, and then opens the saved file with this application?

Was it helpful?

Solution

I will answer my own question. The following entry in .muttrc does what I want:

macro attach O \
"\
<enter-command>unset wait_key<enter>\
<shell-escape>rm -f /tmp/mutt-attach<enter>\
<save-entry><kill-line>/tmp/mutt-attach<enter>\
<shell-escape> /tmp/mutt-attach &^A\
"

Description (line by line):

  • map the macro to the O key in attachment mode
  • disable "Press any key to continue ..."
  • remove the file /tmp/mutt-attach if it exists
  • save the selected entry to /tmp/mutt-attach
  • start a shell command, input /tmp/mutt-attach & and go to the beginning of the line (^A)

Then I can simply input the program I want to use and hit enter, which will open the selected attachment in the background.

OTHER TIPS

Or if you want to always open the same program (firefox in my case):

macro attach F \
"\
<enter-command>unset wait_key<enter>\
<shell-escape>rm -f /tmp/mutt-attach<enter>\
<save-entry><kill-line>/tmp/mutt-attach<enter>\
<shell-escape>firefox /tmp/mutt-attach &<enter>\
"
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top