emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
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: Wed, 31 Mar 2010 15:10:18 -0600	[thread overview]
Message-ID: <87eij05had.fsf@gmail.com> (raw)
In-Reply-To: <87fx3g1cld.fsf@stats.ox.ac.uk> (Dan Davison's message of "Wed, 31 Mar 2010 16:05:18 -0400")

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.

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.

>
> 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.

--8<---------------cut here---------------start------------->8---
;; 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")))
--8<---------------cut here---------------end--------------->8---

An extension of this could be used to add missing CSS elements where
required.

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

  reply	other threads:[~2010-03-31 21:10 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 [this message]
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
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=87eij05had.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 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).