Sto provando a creare un modello utilizzando i modelli di acquisizione org quando si utilizza mu4e. Quando si visualizza un messaggio in mu4e: view mode, posso chiamare org-capture-templates con una sequenza di tasti e quindi aggiungere un promemoria in un file con un collegamento al messaggio. Qualcosa di simile a questo:Utilizzo di modelli di acquisizione org con mu4e
* 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
Ecco il modello in mio .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))))
Ma le variabili nella sezione 9.1.3.2 del manuale ufficiale orgmode non sono impostate in mu4e. La mia ipotesi è che dovrebbe essere impostato nella seguente funzione in org-mu4e.el. Vedi le 3 linee contrassegnate da un commento che ho aggiunto, ma questo non risolve il problema. Il link (% a) viene inizializzato, ma non: to,: from e: subject.
Se metto a punto, posso vedere la chiamata di funzione per org-store-link-oggetti di scena si presenta così:
org-store-link-props(:type "mu4e" :from (("Person Name" . "[email protected]"))
:to (("Me Surname" . "[email protected]")) :subject "Re: Subject of Email"
:message-id "message-id")
Tuttavia, il modello viene valutato come:
* NEXT Respond to %:from on %:subject
SCHEDULED: <2013-06-23 Sun>
[2013-06-23 Sun 21:08]
Grazie per il aiuto - questa è la funzione finale che funziona per me:
(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)
Ok, ho fatto dei progressi. Sembra che il campo dei messaggi mu4e restituisca le e-mail come (("Nome Cognome". "[email protected]")). Quindi, se lo cambio in una stringa con qualcosa come due chiamate di macchina, funziona in qualche modo, a meno che il campo da nella mail non abbia un nome e una e-mail, come "Nome Cognome <[email protected]>". Non è affatto una soluzione elegante, ma funziona per ora. – cheese
Un altro modo per passare da un elenco di elenchi a una stringa funzionerebbe meglio? – cheese
Se si guarda la sezione "Funzioni dei messaggi" nel manuale (sembra COSÌ non mi permette di formattare questo come qualcosa di molto leggibile ...): I campi di contatto (A, Da, Cc, Ccn) sono elenchi di cons-pair '(nome e-mail)'; 'nome' può essere 'nil'. Quindi, ad esempio: (mu4e-message-field some-msg: a) ;; => (("Jack". "[email protected]") (nullo. "[email protected]")) – djcb