From: Dan Davison <davison@stats.ox.ac.uk>
To: Eric Schulte <schulte.eric@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: using orgmode to send html mail?
Date: Wed, 24 Mar 2010 13:50:53 -0400 [thread overview]
Message-ID: <87sk7pzk02.fsf@stats.ox.ac.uk> (raw)
In-Reply-To: <87tys5zrwm.fsf@gmail.com> (Eric Schulte's message of "Wed, 24 Mar 2010 09:00:09 -0600")
"Eric Schulte" <schulte.eric@gmail.com> writes:
> Xiao-Yong Jin <xj2106@columbia.edu> writes:
>
>> On Tue, 23 Mar 2010 13:54:39 -0600, Eric Schulte wrote:
>>
>>> Nice to see this topic has come back to life.
>>> I've been playing with my old org-html-mail.el file, and come up with a
>>> much simpler solution, which takes advantage of the mml message mode
>>> functionality with is used in gnus (and I would imagine in some other
>>> Emacs mail clients, but I can't be sure).
>>
>>> Just call this function and either the active region of your message
>>> buffer or the entire body (if no region is active) will be exported to
>>> html using org-mode, and will be wrapped in the appropriate mml wrapper
>>> to be sent as the appropriate mime type.
>>
>
> I've cleaned up the function somewhat, I'll include it immediately
> below by inserting it in a org-mode src_block and then exporting it to
> html, so those with html mail readers should see a nicely fontified
> version of the source code.
This is really nice. I already sent my first HTML-formatted tables to
colleagues with it yesterday. And yes, the email comes up with nicely
formatted elisp in my web browser after hitting 'K H' in gnus.
Dan
>
> (defun org-mml-htmlize (arg)
> "Export a portion of an email body composed using `mml-mode' to
> html using `org-mode'. If called with an active region only
> export that region, otherwise export the entire body."
> (interactive "P")
> (let* ((region-p (org-region-active-p))
> (html-start (or (and region-p (region-beginning))
> (save-excursion
> (goto-char (point-min))
> (search-forward mail-header-separator)
> (point))))
> (html-end (or (and region-p (region-end))
> ;; TODO: should catch signature...
> (point-max)))
> (body (buffer-substring html-start html-end))
> (tmp-file (make-temp-name (expand-file-name "mail" "/tmp/")))
> ;; because we probably don't want to skip part of our mail
> (org-export-skip-text-before-1st-heading nil)
> ;; because we probably don't want to export a huge style file
> (org-export-htmlize-output-type 'inline-css)
> ;; makes the replies with ">"s look nicer
> (org-export-preserve-breaks t)
> (html (if arg
> (format "<pre style=\"font-family: courier, monospace;\">\n%s</pre>\n" body)
> (save-excursion
> (with-temp-buffer
> (insert body)
> (write-file tmp-file)
> ;; convert to html -- mimicing `org-run-like-in-org-mode'
> (eval (list 'let org-local-vars
> (list 'org-export-as-html nil nil nil ''string t))))))))
> (delete-region html-start html-end)
> (save-excursion
> (goto-char html-start)
> (insert
> (format
> "\n<#multipart type=alternative>\n<#part type=text/html>%s<#/multipart>\n"
> html)))))
>
>
>>
>> Thumbs up for this one. It should be included in
>> org-contrib, probably after taken care of other mail client
>> in emacs?
>>
>
> I have looked somewhat at both VM and Wanderlust, but they appear to use
> their own mime encoding schemes other than mml, so this won't work as-is
> in those mail clients. That said, assuming they also use simple mime
> encoding strings it should be hard to replace the mml specific mime
> delimiters presented as strings in the above functions with string
> delimiters appropriate for the other mail agents.
>
> also, I have to say I feel bad about publishing code which promotes the
> use of HTML mail. Generally I feel that everyone would be better off if
> they just used fixed width text email clients. As a concession to that
> intuition, if this function is called with a prefix argument, it will
> wrap the region (or entire email) as html in <pre></pre> tags ensuring
> that it will be rendered in a fixed-with font no-matter the receivers
> email client, so the following table should actually look like a
> table...
>
> | this table | | n | fibb(n) |
> |--------------+---+---+---------|
> | is | | 0 | 0 |
> | inside | | 1 | 1 |
> | of a pre box | | 2 | 1 |
> | | | 3 | 2 |
>
>
> Best -- Eric
>
>>
>>> So for example this
>>>> 1 | 2 | 3 |
>>>> --------------+--------+-------|
>>>> first column | second | third |
>>
>>> will be exported as this
>>> ━━━━━━━━━━━━━━
>>> 1 2 3
>>> ──────────────
>>> first column second third
>>> ━━━━━━━━━━━━━━
>>
>> I use emacs-w3m in gnus, and the table looks great.
> _______________________________________________
> 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-03-24 17:51 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 [this message]
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
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=87sk7pzk02.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).