I want to use mh-e to write mail, however message.el does not permit to use other MUA. So I wrote a patch for message.el. This patch expands a variable `message-buffer-constructor-alist'. This variable is an alist which key part is buffer name and value part is functions to build message buffer. Default key is `t'. This patch does not have implementation for other MUAs. I wrote buffer-constructor for mh-e and inserted to gnus-mh.el. In addition, I modified gnus.el for auto-loading. Maybe you can write other buffer-constructor if you want to use other user-interface to write message.