6

mu4e の使用時に org-capture テンプレートを使用してテンプレートを作成しようとしています。mu4e:view モードでメッセージを表示する場合、キーストロークで org-capture-templates を呼び出し、メッセージへのリンクを含むファイルにリマインダーを追加できます。このようなもの:

* NEXT Respond to Person A on Message Subject 
SCHEDULED: <2013-06-22 Sat>
[2013-06-22 Sat 22:05]
Email subject linked to mu4e message

私の .emacs のテンプレートは次のとおりです。

(setq org-capture-templates
(quote (("r" "respond" entry (file "~/refile.org")
"* NEXT Respond to %:from on %:subject\nSCHEDULED: %t\n%U\n%a\n\n" 
 :clock-in t :clock-resume t :immediate-finish t)))) 

ただし、orgmode 公式マニュアルのセクション 9.1.3.2 の変数は、mu4e では設定されていません。私の推測では、org-mu4e.el の次の関数で設定する必要があります。私が追加したコメントでマークされた 3 行を参照してください。ただし、これで問題は解決しません。リンク (%a) は初期化されますが、:to、:from、:subject は初期化されません。

デバッグすると、org-store-link-props への関数呼び出しが次のようになっていることがわかります。

org-store-link-props(:type "mu4e" :from (("Person Name" . "person@email.whatever"))
:to (("Me Surname" . "me@here.com")) :subject "Re: Subject of Email" 
:message-id "message-id")

ただし、テンプレートは次のように評価されます。

* NEXT Respond to %:from on %:subject
SCHEDULED: <2013-06-23 Sun>
[2013-06-23 Sun 21:08]

助けてくれてありがとう - これは私のために働く最終的な機能です:

(defun org-mu4e-store-link ()
"Store a link to a mu4e query or message."
(cond
 ;; storing links to queries
 ((eq major-mode 'mu4e-headers-mode)
  (let* ((query (mu4e-last-query))
      desc link)
(org-store-link-props :type "mu4e" :query query)
(setq
  desc (concat "mu4e:query:" query)
  link desc)
(org-add-link-props :link link :description desc)
link))
  ;; storing links to messages
((eq major-mode 'mu4e-view-mode)
  (let* ((msg  (mu4e-message-at-point))
     (msgid   (or (plist-get msg :message-id) "<none>"))
     (from (car (car (mu4e-message-field msg :from))))
     (to (car (car (mu4e-message-field msg :to))))
     (subject (mu4e-message-field msg :subject))
     link)
   (setq link (concat "mu4e:msgid:" msgid))
   (org-store-link-props :type "mu4e" :link link
             :message-id msgid)
   (setq link (concat "mu4e:msgid:" msgid))
   (org-store-link-props 
    :type "mu4e" :from from :to to :subject subject
          :message-id msgid)

   (org-add-link-props :link link
           :description (funcall org-mu4e-link-desc-func msg))
   link))))

(org-add-link-type "mu4e" 'org-mu4e-open)
(add-hook 'org-store-link-functions 'org-mu4e-store-link)
4

1 に答える 1

4

このようなものが動作するはずです:

(setq from
   (let ((first (car (mu4e-message-field-at-point :from))))
     (if (car first)
       (format "%s <%s>" (car first) (cdr first))
       (cdr first))))
于 2013-06-30T14:49:58.137 に答える