Open mime attachments in Emacs

As shown in a previous post, Emacs has some nice email readers. However, the default handling of most attachments (MIME types in traditional programming speak) is just to save the file. I have configured Emacs to rely on Windows for opening some types of attachments that I find often. As an example, I show below how to open PDFs and Word files, although it can be extended to other file types. Place this code in your Emacs' init.el file.

(ctree-set-calist-strictly
 'mime-acting-condition
 '((mode . "play")
   (type . application)
   (subtype . pdf)
   (method . jjgr-default-mime-open)))
(ctree-set-calist-strictly
 'mime-acting-condition
 '((mode . "play")
   (type . application)
   (subtype . vnd.openxmlformats-officedocument.wordprocessingml.document)
   (method . jjgr-default-mime-open)))

(defun jjgr-default-mime-open (&optional a b)
  (let* ((entity (get-text-property (point) 'mime-view-entity))
		 (name (mime-entity-safe-filename entity))
		 (filename (concat (getenv "HOMEDRIVE")
						   (getenv "HOMEPATH")
						   "\\Downloads\\"
						   name)))
	(mime-write-entity-content entity filename)
	(print `(start-process "cmd.exe" "*Play*" "cmd.exe" ,filename))
	(start-process "cmd.exe" nil "cmd.exe" "/c" "start" "/b" filename)))