emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: David Maus <dmaus@ictsoc.de>
To: Eric Schulte <schulte.eric@gmail.com>
Cc: Dan Davison <davison@stats.ox.ac.uk>, emacs-orgmode@gnu.org
Subject: Re: using orgmode to send html mail?
Date: Fri, 02 Apr 2010 09:04:28 +0200	[thread overview]
Message-ID: <87oci2wd1f.wl%dmaus@ictsoc.de> (raw)
In-Reply-To: <87k4ssb12n.fsf@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 4401 bytes --]

Eric Schulte wrote:
>>
>> Thinking functional this might be the first function of
>> org-mail-htmlize[1]: Create a html representation of message body if
>> necessary or appropriate.
>>

>Oh, so this would be a slightly different issue,

>So this function could be run *every* time an email is sent.  I agree
>that in those cases running on the entire message would be the right way
>to go.

Right, this would be nice for people who are obliged to send out html
messages.  If this is turned on org-mime should display the string
"HTML" in the mode line.  In the WL it's done this way:

,----
| (defun dmj/wl-send-html-message-draft-init ()
|   "Create buffer local settings for maybe sending html message."
|   (unless (boundp 'dmj/wl-send-html-message-toggled-p)
|     (setq dmj/wl-send-html-message-toggled-p nil))
|   (make-variable-buffer-local 'dmj/wl-send-html-message-toggled-p)
|   (add-to-list 'global-mode-string
|                '(:eval (if (eq major-mode 'wl-draft-mode)
|                            dmj/wl-send-html-message-toggled-p))))
`----

This function is hooked into mime-edit mode and set's a buffer local
variable that indicates "html message mode" and is displayed in the
mode line.

>>
>> 2/
>>
>> The second function: Attach external files that are referenced in the
>> message.  This might be useful even if you don't send out html
>> messages: All external files are stashed into a multipart/mixed
>> container along with a Content-Id: header field.
>>
>> Than all references are changed accordingly to point to the attached
>> files:
>>
>>   - for html use src/href with the cid: prefix
>>
>>   - for text: good question.  Maybe replace occurences of the file
>>     with a customizable string saying: "see attached file foo.bar".
>>

>I'm not sure I understand, I'm currently happy with my mail agent's
>method of attaching files to email, what else would this use of the
>function add aside from a new attachment syntax.

What I meant was: Suppose you write a document in Org with references
to external files (images etc.).  If finished you'd like this document
to a fellow by mail including all external files.  So this function
collects all these files, and maybe converts the message body to html,
fires up Gnus/WL with a new message and inserts something like

< #multipart type="alternate">
< #part type="text/plain"> ...plain text body...
< #part type="text/html"> ...html body...
< #/multipart>
< #multipart type="mixed">
< #part type="image/png"> image1.png
< #part type="image/png"> image2.png
  ...
< #/multipart>

That is: The original document including all external files -- and all
references in the original file are replaced by references to the
attachments.

Original
,----
| ...
| As you can see in [[file:figure1.png][Figure 1]], cats
| *are* the cutest animals on earth.
| ...
`----

"figure1.png" will be attached and the reference adjusted to the
attachment.

HTML
,----
| As you can see in <a href="cid:id-of-figure1.png" title="Figure 1">Figure 1</a>,
| cats <b>are</b> the cutest animals on earth.
`----

Plain

,----
| As you can see in Figure 1 (see attached file: figure1.png), cats
| *are* the cutest animals on earth.
`----

>> 4/
>>
>> Detecting the plain text body should not just stop on end of buffer
>> but also on the first occurence of a MIME delimiter: Maybe the user
>> already added a attachment.
>>

>Good point, one open question here is how to treat that mime border, I'm
>thinking it may be best to simply stash it in a

>#+BEGIN_HTML
>original mime content
>#+END_HTML

>block, so that it survives the Org-mode export unscathed, however maybe
>it's simpler just to end the html alternative part at the first mime
>border.

Yes, it is simpler.  Simply search for the end of the message body
with the condition: either eobp or MIME delimiter.

For example when in mml (line 92ff in org-mime.el):

,----
| (html-end (or (and region-p (region-end))
| 	      (if (not (re-search-forward "^<#part\\|^<#multipart" nil t))
| 		  (point-max)
|		;; one line up
| 		(end-of-line 0)
| 		(point))))
`----

With this you can even catch the signature that is separate by "--
\n".  If re-search-forward finds an attachment the body ends right
before.  Small glitch: This code assumes MIME delimiters start at the
beginning of a line ("^").

 -- David

--
OpenPGP... 0x99ADB83B5A4478E6
Jabber.... dmjena@jabber.org
Email..... dmaus@ictsoc.de

[-- Attachment #1.2: Type: application/pgp-signature, Size: 230 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
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-04-02  8:04 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
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 [this message]
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=87oci2wd1f.wl%dmaus@ictsoc.de \
    --to=dmaus@ictsoc.de \
    --cc=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).