emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [Orgmode] Re: mail agenda similar to `diary-mail-entries'


From: Carsten Dominik
Subject: Re: [Orgmode] Re: mail agenda similar to `diary-mail-entries'
Date: Sun, 10 Jun 2007 06:37:00 +0200


On Jun 10, 2007, at 1:36, Patrick Drechsler wrote:

Carsten Dominik <address@hidden> writes:

Untested:

emacs -batch -l ~/.emacs -eval '(org-batch-agenda "a")' \
       | mail address@hidden


With (setq org-agenda-include-diary t), the diary will
be part of the mailing automatically.

I am very sorry for the late reply.

Thank you Carsten for your script!

The problem I am having with your approach is that `mail' requires a
full blown MTA.

what is an MTA?

And since the diary script works fine with Emacs/Gnus
I was wondering if an approach along those lines might work, but to no
avail so far:

Here is the script I a trying to use:

--8<---------------cut here---------------start------------->8---
emacs \
    --batch \
    --load ~/.emacs.d/init.el \
    --load ~/.emacs.d/.gnus \
    --funcall org-mail
--8<---------------cut here---------------end--------------->8---


And I have tried this in my ~/.emacs (well, actually
~/.emacs.d/init.el, but that should not make a difference):

--8<---------------cut here---------------start------------->8---
;;; Test 1: this sends a message, but only replicates the header in the
;;; body. The actual body (the agenda) is not present.
;; (defun org-mail ()
;;   "Send mail of agenda to myself."
;;   (org-batch-agenda "a")
;;   (compose-mail diary-mail-addr "agenda")
;;   (insert (buffer-string))
;;   (call-interactively (get mail-user-agent 'sendfunc)))


When you do `(insert (buffer-string))', then you are already in the
mail buffer, so indeed you are only duplocating the content of the
mail buffer.  You need to do something like this:

(defun org-mail ()
  "Send mail of agenda to myself."
  (org-batch-agenda "a")
  (let ((str (buffer-string)))
     (compose-mail diary-mail-addr "agenda")
     (insert str)
     (call-interactively (get mail-user-agent 'sendfunc))))


In the following two approach you are assuming that
(org-batch-agenda "a") would *return* the agenda.  It does
not.  Instead yu are trying to indert the return value
of this function (don't even know what it would be...)
into the agenda buffer, which is indeed read-only


;;; Test 2
;;; ERROR:
;;; Buffer is read-only: #<buffer *Org Agenda*>
;; (defun org-mail ()
;;   "Send mail of agenda to myself."
;;   (compose-mail diary-mail-addr "agenda")
;;   (insert (org-batch-agenda "a"))
;;   (call-interactively (get mail-user-agent 'sendfunc)))


Below the same problem as before...

;;; Test 3:
;;; ERROR:
;;; Invalid header line (maybe a continuation line lacks initial whitespace)
;; (defun org-mail ()
;;   "Send mail of agenda to myself."
;;   (compose-mail diary-mail-addr "agenda")
;;   (insert (org-agenda-list "a"))
;;   (call-interactively (get mail-user-agent 'sendfunc)))
--8<---------------cut here---------------end--------------->8---

Hope this helps.

- Carsten





reply via email to

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