[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] [CONTRIB?] using orgmode to send html mail?

From: Eric Schulte
Subject: Re: [Orgmode] [CONTRIB?] using orgmode to send html mail?
Date: Wed, 31 Mar 2010 15:10:18 -0600
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Dan Davison <address@hidden> writes:

> "Eric Schulte" <address@hidden> 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

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

--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)
     (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

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.
>> address@hidden
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

reply via email to

[Prev in Thread] Current Thread [Next in Thread]