I think that what you really want to do here is modify org-mime-compose so that you can use the send-actions argument to message-mail. In scimax-email.el I use that to be able to turn an org-heading into an email, send it, and then jump back to the heading to insert some information about the email into the heading properties after it is sent. A lot of the information gets passed via global variables. Maybe there is a better way to do that, I wrote that code a long time ago.
Otherwise, you need to figure out how to use something like a macro that captures the current-buffer and creates a lambda function with that information in it, and attaches it to the message-buffer hook somehow. For example this will display a message-box for me after the message is sent.
(let ((f `(lambda ()
(message-box "Came from %s" ,(current-buffer)))))
(message-mail)
(add-hook 'kill-buffer-hook f nil t))
Some important notes is this hook is added in local mode, so it only affects that email buffer.
John
-----------------------------------
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803