emacs: Add References header to forwarded messages

Include the message-id of forwarded messages in the new message.
This ensures that the new (forwarding) message is linked to the
same thread as the message being forwarded.
This commit is contained in:
Örjan Ekeberg 2019-04-12 14:01:10 +02:00 committed by David Bremner
parent 9956a326db
commit 3b807db52b

View file

@ -470,8 +470,9 @@ the From: address."
(let* ((other-headers (let* ((other-headers
(when (or prompt-for-sender notmuch-always-prompt-for-sender) (when (or prompt-for-sender notmuch-always-prompt-for-sender)
(list (cons 'From (notmuch-mua-prompt-for-sender))))) (list (cons 'From (notmuch-mua-prompt-for-sender)))))
forward-subject) ;; Comes from the first message and is forward-subject ;; Comes from the first message and is
;; applied later. ;; applied later.
forward-references) ;; List of accumulated message-references of forwarded messages
;; Generate the template for the outgoing message. ;; Generate the template for the outgoing message.
(notmuch-mua-mail nil "" other-headers nil (notmuch-mua-get-switch-function)) (notmuch-mua-mail nil "" other-headers nil (notmuch-mua-get-switch-function))
@ -489,7 +490,8 @@ the From: address."
;; Because we process the messages in reverse order, ;; Because we process the messages in reverse order,
;; always generate a forwarded subject, then use the ;; always generate a forwarded subject, then use the
;; last (i.e. first) one. ;; last (i.e. first) one.
(setq forward-subject (message-make-forward-subject))) (setq forward-subject (message-make-forward-subject))
(push (message-fetch-field "Message-ID") forward-references))
;; Make a copy ready to be forwarded in the ;; Make a copy ready to be forwarded in the
;; composition buffer. ;; composition buffer.
(message-forward-make-body temp-buffer) (message-forward-make-body temp-buffer)
@ -503,7 +505,10 @@ the From: address."
(save-restriction (save-restriction
(message-narrow-to-headers) (message-narrow-to-headers)
(message-remove-header "Subject") (message-remove-header "Subject")
(message-add-header (concat "Subject: " forward-subject))) (message-add-header (concat "Subject: " forward-subject))
(message-remove-header "References")
(message-add-header (concat "References: "
(mapconcat 'identity forward-references " "))))
;; `message-forward-make-body' shows the User-agent header. Hide ;; `message-forward-make-body' shows the User-agent header. Hide
;; it again. ;; it again.