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 @johnkitchin http://kitchingroup.cheme.cmu.edu On Tue, Oct 23, 2018 at 1:40 PM Matt Price wrote: > Hey, I guess this is OT. > > I'm trying to advice org-mime-org-buffer-htmlize so that it returns to the > org buffer when its done. I want to do something like this: > > (let ((thisbuffer (current-buffer)) > (advice-add > 'mu4e-sent-handler > :after (lambda (docid props) > (switch-to-buffer thisbuffer) > (advice-remove 'mu4e-sent-handler 'om-sent-advice) > ) '((name . 'om-sent-advice))) > > but by the time the hook is run, the (let) has long since lapsed, and > thisbuffer is no longer defined. Can I force evaluation of the variable > during definition? > > Thanks, > m >