Tomi Ollila <tomi.oll...@iki.fi> writes:
> notmuch-mua-new-forward-messages would be the place adding message-id's
> to the references header (perhaps where 'appropriate subject' is added)
> probably not much work but SMOP anyway ;/

Indeed.  Here is an attempt that seems to do the trick.
This is a modified version of notmuch-mua-new-forward-messages
(extracted from notmuch-mua-el).  Sorry for not posting it as a patch.
Changes are the lines involving the variable forward-references.
Please check if this is the right approach.


(defun notmuch-mua-new-forward-messages (messages &optional prompt-for-sender)
  "Compose a new message forwarding MESSAGES.

If PROMPT-FOR-SENDER is non-nil, the user will be prompteed for
the From: address."
  (let* ((other-headers
          (when (or prompt-for-sender notmuch-always-prompt-for-sender)
            (list (cons 'From (notmuch-mua-prompt-for-sender)))))
         forward-subject  ;; Comes from the first message and is
                          ;; applied later.
         forward-references) ;; Accumulated message-ids of forwarded messages

    ;; Generate the template for the outgoing message.
    (notmuch-mua-mail nil "" other-headers nil 
(notmuch-mua-get-switch-function))

    (save-excursion
      ;; Insert all of the forwarded messages.
      (mapc (lambda (id)
              (let ((temp-buffer (get-buffer-create
                                  (concat "*notmuch-fwd-raw-" id "*"))))
                ;; Get the raw version of this message in the buffer.
                (with-current-buffer temp-buffer
                  (erase-buffer)
                  (let ((coding-system-for-read 'no-conversion))
                    (call-process notmuch-command nil t nil "show" 
"--format=raw" id))
                  ;; Because we process the messages in reverse order,
                  ;; always generate a forwarded subject, then use the
                  ;; last (i.e. first) one.
                  (setq forward-subject (message-make-forward-subject))
                  (if forward-references
                      (setq forward-references
                            (concat forward-references ", "
                                    (message-fetch-field "Message-ID")))
                    (setq forward-references (message-fetch-field 
"Message-ID"))))
                ;; Make a copy ready to be forwarded in the
                ;; composition buffer.
                (message-forward-make-body temp-buffer)
                ;; Kill the temporary buffer.
                (kill-buffer temp-buffer)))
            ;; `message-forward-make-body' always puts the message at
            ;; the top, so do them in reverse order.
            (reverse messages))

      ;; Add in the appropriate subject.
      (save-restriction
        (message-narrow-to-headers)
        (message-remove-header "Subject")
        (message-add-header (concat "Subject: " forward-subject))
        (message-remove-header "References")
        (message-add-header (concat "References: " forward-references)))

      ;; `message-forward-make-body' shows the User-agent header.  Hide
      ;; it again.
      (message-hide-headers)
      (set-buffer-modified-p nil))))
_______________________________________________
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch

Reply via email to