How to use Cocoa Emacs as editor for Mutt
With Emacsclient, keeping Emacs running all the time
Emacs uses a slightly different setup than e.g. vim. The editor itself can remain active all the time (because you may have it open for other things as well) and you use a utility called emacsclient to connect to it (pass a file to edit) if you need it.
Add the following line to your config file (.emacs):
(server-start)  ; Starts server for (among others) emacsclient

Or, if you don't wish to keep the server for emacsclient running at all times, you may issue the command M-x server-start to emacs when you're ready to run. Issuing that command is probably the right thing to do when you're already running emacs, unless you want to reload .emacs.
All you have to do now is to make sure that MUTT uses emacsclient as its editor. You can do this by adding the following line to your config file (.muttrc):
set editor=&quot;emacsclient&quot;

Recent versions of mutt (at least 1.4.1) require the following format:
set editor=&quot;emacsclient %s&quot;

Source: Emacs and MUTT
Starting Emacs every time
set editor=&quot;emacs %s&quot;