I saw in the archives that this is a bit of an FAQ, and it seems that to this day there's not much of an answer, sadly.
The best I could do was to create an index macro that pipes the current message to a script that then: a) pipes stdin to formail, b) saves the result in a tmp file, c) starts a new instance of mutt -f that_file. Or perhaps using -H. But that's clearly not quite what I want, nor what the various users who have asked for this want. Ideas: - Add a function like <pipe-message> but which instead of piping the message puts the message in a temp file and then allows for expansion of several parameters in the command line, including: %f (the address of the sender of the message) %r (the To: addresses of the message) %c (the Cc: addresses of the message) %a (the To: and Cc: addresses of the message) %l (the To: and Cc: addresses of the message that are lists) %R (the Reply-To: address of the message) %s (the Subject: of the message, with "Re: " prefixed if not %already) %F (the name of the file containing the message) - Same as above but also provide a Unix domain socket/door/whatever that mutt can listen on for commands from the external command. The purpose of this is to support connection sharing and avoid having to re-type IMAP/SMTP passwords. The main sub-command would be to send the message found in a given file, and also to mark a message in a folder as replied. The name of the rendezvous would be set in an environment variable and mutt would support using it. All send/save/*-hooks would be applied in the primary mutt. (This is not really needed when using SASL/GSSAPI, of course. It's primrarily useful when there are passwords to type.) Where would I start if I was to try to implement the first of the above? Nico --