It's certainly true that email clients can be particular about how they display HTML.
One possible fix for issues like these is to use the `org-mime-html-hook' hook and the `org-mime-change-element-style' function for forcing inline css into the misbehaving elements. Best -- Eric Dan Davison <davi...@stats.ox.ac.uk> writes: > 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 {}) > > {#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} > >> 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) >> > > 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} > >> 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