;; Make sure the Message-ID header is present in newly created messages
(setq message-generate-headers-first '(Message-ID))
;; Prevent emacs from resetting the Message-ID before the message is sent.
(setq message-deletable-headers
(remove 'Message-ID message-deletable-headers))
(setq gnus-posting-styles
'(("^pl\\.test$"
("Reply-To" '(message-make-reply-to)))))
の周りの追加の引用符と括弧に注意してくださいmessage-make-reply-to
。これについての説明は、関数がシンボルとして指定されているか、引用符で囲まれたs式として指定されているかに応じて、異なる時間に実行されるということです。
- シンボルとして指定された場合、ラムダ関数がに追加されたときに実行され
message-setup-hook
ます。これは、で発生しますmessage-mode-hook
。つまり、新しいバッファが作成されてに切り替えられた直後message-mode
です。これの原因は、ラムダ関数の作成中の値のワイルドクォート/アンクォートです。
- 引用符で囲まれたsexprとして指定された場合、評価は、バッファーが初期値で満たされるまで延期されます。これは、メッセージ設定で実行される最後のコードに近いものです。
代替ソリューション(なしgnus-posting-styles
)
すべての新しいメッセージに新しいヘッダーを追加する必要がある場合は、Reply-To
を使用してヘッダーを設定することもできますmessage-header-setup-hook
。新しいメッセージごとにヘッダーを追加するには、カスタムフックを定義する必要があります。
(defun reply-to-message-header-setup-hook ()
(let* ((msg-id (message-fetch-field "Message-ID"))
(reply-to (my-script ".../reply-to-pl" msg-id)))
(message-add-header (concat "Reply-To: " reply-to))))
;; Call the hook every time a new message is created
(add-hook 'message-header-setup-hook 'reply-to-message-header-setup-hook)
;; Make sure the Message-ID header is present in newly created messages
(setq message-generate-headers-first '(Message-ID))