emacs-orgmode
[Top][All Lists]
Advanced

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

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


From: Dan Davison
Subject: Re: [Orgmode] [CONTRIB?] using orgmode to send html mail?
Date: Wed, 31 Mar 2010 17:37:48 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

"Eric Schulte" <address@hidden> writes:

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

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