emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [Orgmode] Support for linking to nnml (Gnus) mail messages by Messag


From: Carsten Dominik
Subject: Re: [Orgmode] Support for linking to nnml (Gnus) mail messages by Message-ID
Date: Wed, 5 Sep 2007 05:23:53 +0200

Note that John is running an intermediate version with a small fix needed
to make this work.  Wait for 5.08 before trying this...

- Carsten

On Sep 4, 2007, at 21:04, John Wiegley wrote:

Because I frequently archive out e-mails to other mailboxes, I cannot rely on the group/article-no format of the current Gnus e-mail links used by org.el. So, I've written code that can find a message based solely on its Message-ID. The only requirement is that the message must be in an nnml mailbox somewhere,
and not in mbox format or something else.

John

;;; org-nnml.el - Support for links to nnml messages by Message-ID

;; version 1.0, by John Wiegley <address@hidden>

(require 'org)

(eval-when-compile
  (require 'nnml)
  (require 'gnus-sum))

(org-add-link-type "nnml" 'org-nnml-open)

(add-hook 'org-store-link-functions 'org-nnml-store-link)

(defun org-nnml-open (message-id)
  "Visit the nnml message with the given Message-ID."
  (let ((info (nnml-find-group-number message-id)))
    (gnus-summary-read-group (concat "nnml:" (car info)) 100 t)
    (gnus-summary-goto-article (cdr info) nil t)))

(defun org-nnml-store-link ()
  "Store a link to an nnml e-mail message by Message-ID."
  (when (memq major-mode '(gnus-summary-mode gnus-article-mode))
(and (eq major-mode 'gnus-article-mode) (gnus-article-show-summary))
    (let* ((article (gnus-summary-article-number))
           (header (gnus-summary-article-header article))
           (message-id (mail-header-id header)))
      (if (eq (aref message-id 0) ?\<)
          (setq message-id
                (substring message-id 1 (1- (length message-id)))))
      (org-store-link-props
       :type "nnml"
       :link (cons (concat "nnml://" message-id)
                   (concat "nnml://" message-id))
       :description (mail-header-subject header)))))

(provide 'org-nnml)

;;; org-nnml.el ends here


_______________________________________________
Emacs-orgmode mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode



--
Carsten Dominik
Sterrenkundig Instituut "Anton Pannekoek"
Universiteit van Amsterdam
Kruislaan 403
NL-1098SJ Amsterdam
phone: +31 20 525 7477





reply via email to

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