Hmm, perhaps I should have been a bit more careful with protecting the various special email constructs in my message. Second try:
Dan Davison <davi...@stats.ox.ac.uk> writes: > Hi Eric, > > Thanks a lot for this, I think I'll use it quite a bit. > > This may be specific to my setup, but in case this is useful to others, > as a gnus user I had to do > > (setq mail-user-agent 'message-user-agent) > > Without altering this --- i.e. with mail-user-agent set to the default > value of 'sendmail-user-agent --- org-mime-org-buffer-htmlize puts the > outgoing message in mail-mode (a.o.t. message-mode). For me, that meant > that the resulting outgoing email was rendered verbatim in gmail, > whereas from message-mode it is fine. The exact contents of outgoing > emails are below. > > I noticed one small bug, but perhaps it's an org-mode bug? When I use > org-mime-org-buffer-htmlize on this > > ,---- > | *** Tasks > | - [ ] Check Popen.returncode of python system calls > `---- > > I get the following, which renders as a checkbox with an X, whereas my > checkbox was empty. (I've replaced the <> tag delimiters with {}) --8<---------------cut here---------------start------------->8--- {#multipart type=alternative}{#part type=text/plain} *** Tasks - [ ] Check Popen.returncode of python system calls {#part type=text/html}{div id="outline-container-1" class="outline-3"} {h3 id="sec-1"}Tasks {/h3} {div class="outline-text-3" id="text-1"} {ul} {li} {b}[{span style="visibility:hidden;"}X{/span}]{/b} Check Popen.returncode of python system calls {/li} {/ul} {/div} {/div} {#/multipart} --8<---------------cut here---------------end--------------->8--- > Comparison of outgoing mail from mail-mode and message-mode: > > With an org buffer containing (as active region or not) > > ,---- > | * heading > | text > `---- > > Here is what the outgoing email (i.e. the stdin received by > sendmail-program) looks like from mail-mode (mail formed by > org-mime-org-buffer-htmlize) > --8<---------------cut here---------------start------------->8--- To: dandavis...@gmail.com Subject: test {#multipart type=alternative}{#part type=text/plain} * heading text{#part type=text/html}{div id="outline-container-1" class="outline-2"} {h2 id="sec-1"}heading {/h2} {div class="outline-text-2" id="text-1"} {p}text {/p}{/div} {/div} {#/multipart} --8<---------------cut here---------------end--------------->8--- > And here is what the outgoing email looks like from message-mode (exact > same content, but pasted from mail-mode into message-mode). > > --8<---------------cut here---------------start------------->8--- > From: Dan Davison <davi...@stats.ox.ac.uk> > To: dandavis...@gmail.com > Subject: test16 > Date: Mon, 05 Apr 2010 09:26:23 -0400 > Message-ID: <87y6h2f2tc....@stats.ox.ac.uk> > User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) > MIME-Version: 1.0 > Content-Type: multipart/alternative; boundary="=-=-=" > > --=-=-= > > * heading > text > > --=-=-= > Content-Type: text/html > > <div id="outline-container-1" class="outline-2"> > <h2 id="sec-1">heading </h2> > <div class="outline-text-2" id="text-1"> > > <p>text > </p></div> > </div> > > --=-=-=-- > --8<---------------cut here---------------end--------------->8--- > > Dan > > "Eric Schulte" <schulte.e...@gmail.com> writes: > >> Hi, >> >> It is now possible to send HTML mail directly form an org-mode buffer. >> >> Calling `org-mime-org-buffer-htmlize' (could probably use a better name) >> from inside of an org-mode buffer will use `org-export-as-html' to >> generate HTML of the buffer (respecting regions and subtree narrowing), >> and will then package the resulting HTML with all linked images into a >> message buffer. >> >> As usual thanks to Carsten's thoughtfully organized functions and >> control variables this was surprisingly easy to implement. >> >> Cheers -- Eric >> >> The code is still up at http://github.com/eschulte/org-mime >> >> "Eric Schulte" <schulte.e...@gmail.com> writes: >> >>> Dan Davison <davi...@stats.ox.ac.uk> writes: >>> >>> [...] >>> >>>> >>>> As I understand it the code you've written is designed to be called in a >>>> message-mode buffer with orgstruct-mode in force. Would it make sense to >>>> also include in your package a complementary function, that one calls in >>>> an org-mode buffer? I envisage this generating the HTML, forming the >>>> multipart email contents, and then saving it to the kill ring, so that >>>> it can be pasted into an email. >>>> >>>> This function would have access to the directory-name and so should be >>>> able to resolve relative paths. Also, there might be some other >>>> advantages -- for example when exporting just a region or subtree, >>>> buffer-wide properties such as #+TITLE and #+AUTHOR are picked up by the >>>> org exporter and packaged into the HTML. >>>> >>>> In other words, can I use your machinery to package up the HTML >>>> generated by Org's C-e dispatcher into an appropriately-constructed >>>> email? >>>> >>> >>> Hi Dan, >>> >>> That sounds like a good idea, I've added it to a fledgling task list >>> packaged in the README at [1]. I'd say there are two options. >>> >>> 1) which you mentioned saving the entire exported content to the >>> kill-ring. One problem here is that everything is still text and >>> pastable only *before* the mime export process, which means that >>> linked images wouldn't resolve after pasting into the email client. >>> >>> 2) having the function generate a new mail buffer containing the >>> exported content. This buffer would need to have it's >>> `buffer-file-name' set, for images to resolve during export. I'm not >>> sure how this should best work. >>> >>> Thanks -- Eric >>> >>> Footnotes: >>> [1] http://github.com/eschulte/org-mime >> >> >> _______________________________________________ >> Emacs-orgmode mailing list >> Please use `Reply All' to send replies to the list. >> Emacs-orgmode@gnu.org >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode