From: "Eric Schulte" <schulte.eric@gmail.com>
To: Dan Davison <davison@stats.ox.ac.uk>
Cc: emacs-orgmode@gnu.org
Subject: Re: [CONTRIB?] using orgmode to send html mail?
Date: Mon, 05 Apr 2010 09:30:53 -0600 [thread overview]
Message-ID: <87wrwlapam.fsf@gmail.com> (raw)
In-Reply-To: 87fx3aq7bx.fsf@stats.ox.ac.uk
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 <davison@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 <davison@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: dandavison0@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 <davison@stats.ox.ac.uk>
>> To: dandavison0@gmail.com
>> Subject: test16
>> Date: Mon, 05 Apr 2010 09:26:23 -0400
>> Message-ID: <87y6h2f2tc.fsf@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.eric@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.eric@gmail.com> writes:
>>>
>>>> Dan Davison <davison@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
next prev parent reply other threads:[~2010-04-05 15:32 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-22 2:34 using orgmode to send html mail? Matt Price
2010-03-22 15:44 ` Matt Price
2010-03-22 20:18 ` David Maus
2010-03-23 19:54 ` Eric Schulte
2010-03-23 21:46 ` Xiao-Yong Jin
2010-03-24 15:00 ` Eric Schulte
2010-03-24 17:50 ` Dan Davison
2010-03-24 18:01 ` Eric Schulte
2010-03-24 19:12 ` David Maus
2010-03-24 20:19 ` Eric Schulte
2010-03-25 21:17 ` David Maus
2010-03-26 14:53 ` Eric Schulte
2010-03-26 16:04 ` David Maus
2010-03-26 16:32 ` Eric Schulte
2010-03-31 18:12 ` [CONTRIB?] " Eric Schulte
2010-03-31 20:05 ` Dan Davison
2010-03-31 21:10 ` Eric Schulte
2010-03-31 21:37 ` Dan Davison
2010-04-01 14:22 ` Eric Schulte
2010-04-05 5:39 ` Eric Schulte
2010-04-05 6:49 ` Carsten Dominik
2010-04-05 15:31 ` Eric Schulte
2010-04-09 16:41 ` [ANN] org-mime -- " Eric Schulte
2010-04-09 17:41 ` Matt Price
2010-04-09 19:11 ` Eric Schulte
2010-04-09 19:22 ` David Maus
2010-04-09 20:34 ` Eric Schulte
2010-04-12 13:37 ` Andrew Hyatt
2010-04-12 17:22 ` Eric Schulte
2010-04-13 1:31 ` Andrew Hyatt
2010-04-14 0:57 ` Eric Schulte
2010-04-14 1:57 ` Andrew Hyatt
2010-04-14 14:59 ` Eric Schulte
2010-04-14 18:00 ` Andrew Hyatt
2010-04-14 19:26 ` Bernt Hansen
2010-04-14 8:39 ` Eric S Fraga
2010-04-14 15:12 ` Eric Schulte
2010-04-14 19:38 ` Eric S Fraga
2010-04-15 2:49 ` Eric Schulte
2010-04-15 15:47 ` Eric Schulte
2010-04-13 23:03 ` Eric S Fraga
2010-04-14 1:22 ` Eric Schulte
2010-04-05 13:54 ` [CONTRIB?] " Dan Davison
2010-04-05 14:50 ` David Maus
2010-04-05 14:53 ` Dan Davison
2010-04-05 15:30 ` Eric Schulte [this message]
2010-04-01 17:37 ` Sivaram Neelakantan
2010-04-01 17:45 ` Sivaram Neelakantan
2010-03-31 20:37 ` David Maus
2010-03-31 22:03 ` Eric Schulte
2010-04-02 7:04 ` David Maus
2010-04-02 23:01 ` Eric Schulte
2010-04-03 9:19 ` David Maus
2010-04-04 17:52 ` Eric Schulte
2010-04-01 7:53 ` Vagn Johansen
2010-04-02 6:34 ` David Maus
2010-04-02 14:57 ` Dan Davison
2010-04-02 17:25 ` David Maus
2010-04-02 21:10 ` Eric Schulte
2010-04-03 9:00 ` David Maus
2010-04-03 12:03 ` David Maus
2010-04-04 2:41 ` Eric Schulte
2010-04-04 10:00 ` David Maus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87wrwlapam.fsf@gmail.com \
--to=schulte.eric@gmail.com \
--cc=davison@stats.ox.ac.uk \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.