Revert "Revert "in emails, wrap html and images in a multipart/mixed structure""

This reverts commit 3f810ad424.
This commit is contained in:
Eric Schulte 2012-04-12 08:19:54 -04:00
parent 0202817e06
commit 165d34af6a
1 changed files with 23 additions and 14 deletions

View File

@ -132,13 +132,13 @@ exported html."
(defun org-mime-file (ext path id) (defun org-mime-file (ext path id)
"Markup a file for attachment." "Markup a file for attachment."
(case org-mime-library (case org-mime-library
('mml (format ('mml (format (concat "<#part type=\"%s\" filename=\"%s\" "
"<#part type=\"%s\" filename=\"%s\" id=\"<%s>\">\n<#/part>\n" "disposition=inline id=\"<%s>\">\n<#/part>\n")
ext path id)) ext path id))
('semi (concat ('semi (concat
(format (format (concat "--[[%s\nContent-Disposition: "
"--[[%s\nContent-Disposition: inline;\nContent-ID: <%s>][base64]]\n" "inline;\nContent-ID: <%s>][base64]]\n")
ext id) ext id)
(base64-encode-string (base64-encode-string
(with-temp-buffer (with-temp-buffer
(set-buffer-multibyte nil) (set-buffer-multibyte nil)
@ -146,17 +146,26 @@ exported html."
(buffer-string))))) (buffer-string)))))
('vm "?"))) ('vm "?")))
(defun org-mime-multipart (plain html) (defun org-mime-multipart (plain html &optional images)
"Markup a multipart/alternative with text/plain and text/html "Markup a multipart/alternative with text/plain and text/html alternatives.
alternatives." If the html portion of the message includes images wrap the html
and images in a multipart/related part."
(case org-mime-library (case org-mime-library
('mml (format (concat "<#multipart type=alternative><#part type=text/plain>" ('mml (concat "<#multipart type=alternative><#part type=text/plain>"
"%s<#part type=text/html>%s<#/multipart>\n") plain
plain html)) (when images "<#multipart type=related>")
"<#part type=text/html>"
html
images
(when images "<#/multipart>\n")
"<#/multipart>\n"))
('semi (concat ('semi (concat
"--" "<<alternative>>-{\n" "--" "<<alternative>>-{\n"
"--" "[[text/plain]]\n" plain "--" "[[text/plain]]\n" plain
(when images (concat "--" "<<alternative>>-{\n"))
"--" "[[text/html]]\n" html "--" "[[text/html]]\n" html
images
(when images (concat "--" "}-<<alternative>>\n"))
"--" "}-<<alternative>>\n")) "--" "}-<<alternative>>\n"))
('vm "?"))) ('vm "?")))
@ -220,8 +229,8 @@ export that region, otherwise export the entire body."
(delete-region html-start html-end) (delete-region html-start html-end)
(save-excursion (save-excursion
(goto-char html-start) (goto-char html-start)
(insert (org-mime-multipart body html) (insert (org-mime-multipart
(mapconcat 'identity html-images "\n"))))) body html (mapconcat 'identity html-images "\n"))))))
(defun org-mime-apply-html-hook (html) (defun org-mime-apply-html-hook (html)
(if org-mime-html-hook (if org-mime-html-hook