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

* contrib/lisp/org-mime.el (org-mime-file): Mark images included as
  part of html portions as "disposition=inline".
  (org-mime-multipart): When images are present wrap html and images
  in a multipart/mixed structure.
  (org-mime-htmlize): When images are present wrap html and images in
  a multipart/mixed structure.
This commit is contained in:
Eric Schulte 2012-04-11 00:20:22 -04:00
parent 49645b6014
commit 718fefa4e3
1 changed files with 23 additions and 14 deletions

View File

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