From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Support for linking to nnml (Gnus) mail messages by Message-ID Date: Wed, 5 Sep 2007 05:23:53 +0200 Message-ID: References: Mime-Version: 1.0 (Apple Message framework v624) Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1ISlVk-000854-K8 for emacs-orgmode@gnu.org; Tue, 04 Sep 2007 23:25:00 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1ISlVi-00084s-Tb for emacs-orgmode@gnu.org; Tue, 04 Sep 2007 23:25:00 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ISlVi-00084p-Qs for emacs-orgmode@gnu.org; Tue, 04 Sep 2007 23:24:58 -0400 Received: from korteweg.uva.nl ([146.50.98.70]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1ISlVi-0002a8-GV for emacs-orgmode@gnu.org; Tue, 04 Sep 2007 23:24:58 -0400 In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: John Wiegley Cc: emacs-orgmode@gnu.org 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 > > (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 > Emacs-orgmode@gnu.org > 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