emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Dan Davison <davison@stats.ox.ac.uk>
To: Eric Schulte <schulte.eric@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: [CONTRIB?] using orgmode to send html mail?
Date: Wed, 31 Mar 2010 17:37:48 -0400	[thread overview]
Message-ID: <878w98w4sz.fsf@stats.ox.ac.uk> (raw)
In-Reply-To: <87eij05had.fsf@gmail.com> (Eric Schulte's message of "Wed, 31 Mar 2010 15:10:18 -0600")

"Eric Schulte" <schulte.eric@gmail.com> writes:

> Dan Davison <davison@stats.ox.ac.uk> writes:
>
>> "Eric Schulte" <schulte.eric@gmail.com> writes:
>>
>>> Hi,
>>>
>>> I've been using the code currently located at [1] for sending HTML email
>>> [2] for a little while now, and it is working very well.
>>
>> Hi Eric,
>>
>> I just tried pasting content from an org file into a message-mode buffer
>> and calling org-mail-htmlize on the region, and sending the resulting
>> message to gmail. It worked very nicely, with two drawbacks:
>>
>> 1. The content contained links to an image like [[file:file.png][]]. I
>>    had to manually copy the image to /tmp in order for it to be found on
>>    sending.
>>
>
> As the mail composition buffer doesn't really live on the file system
> relative paths will not work.  I believe specifying an absolute path to
> the image would work, or as you mentioned during export the mail buffer
> is written to the /tmp directory, so basing relative paths there will
> also work.  I think this behavior is sufficient, and can't think of any
> good alternative.

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?

>
> Note that images generated during export to html (e.g. latex images,
> babel images, etc...) will be resolved correctly.
>
>>
>> 2. The TODO keywords and timestamps lacked their org-mode
>>fontification.
>>
>
> Ah yes, sites like gmail are careful not to allow page-wide css in HTML
> mail.  All css must be embedded into specific html elements (e.g. <pre
> style="...">).  This is reasonable on their parts as a malicious email
> could destroy the rendering of the web interface.

I see.

>
>>
>> Is there a different procedure I should use to do what I'm trying to
>>do, or are these tweaks that could be made to your code? I have not
>>attempted to follow the technical aspects of this thread so I may well
>>be misunderstanding stuff here.
>>
>
> There is a hook provided in the supplied code, currently called
> `org-mail-html-hook' which you can use to doctor the final html.  For
> example I use the following to force a dark background on all my code
> blocks.
>
> ;; example hook, for setting a dark background in <pre style="background-color: #EEE;"> elements
> (defun org-mail-change-pre-colors (foreground background)
>   "Set new default htlm colors for <pre> elements in exported html mail."
>   (while (re-search-forward "<pre" nil t)
>     (replace-match
>      (format "<pre style=\"color: %s; background-color: %s;\""
>              foreground background))))
>
> ;; example addition to `org-mail-html-hook' adding a dark background
> ;; color to <pre> elements
> (add-hook 'org-mail-html-hook
>           (lambda ()
>             (org-mail-change-pre-colors "#E6E1DC" "#232323")))
>
> An extension of this could be used to add missing CSS elements where
> required.

OK, thanks for that.

Dan

>
> Best -- Eric
>
>>
>> Thanks!
>>
>> Dan
>>
>>
>>
>>>
>>> I wonder if this should be included in the contrib directory of
>>> Org-mode?  Also, since it currently only supports gnus (it should be
>>> very easy to extend to WL and VM, but I don't have access to these other
>>> mailers for testing/verification) maybe it should be sent to the gnus
>>> mailing list instead?
>>>
>>> Cheers -- Eric
>>>
>>> Footnotes: 
>>> [1]  http://github.com/eschulte/org-html-mail
>>>
>>> [2] In defense of sending html mail I should mention that I've only been
>>>     using it to send tables and latex images to people who I know don't
>>>     have access to a true fixed-width font email client.  In addition
>>>     the code presents html as one multipart/alternative with the full
>>>     org-mode plain text presented as a text alternative, so those who
>>>     care and who have control over their email clients can opt to view
>>>     the text portion and ignore the html.  In gnus this is possible with
>>>     
>>>     (setq mm-discouraged-alternatives '("text/html" "text/richtext"))
>>>
>>>
>>> _______________________________________________
>>> 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

  reply	other threads:[~2010-03-31 21:37 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 [this message]
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
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

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=878w98w4sz.fsf@stats.ox.ac.uk \
    --to=davison@stats.ox.ac.uk \
    --cc=emacs-orgmode@gnu.org \
    --cc=schulte.eric@gmail.com \
    /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 public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).