Subject: bug#54429: 29.0.50; message-resend should not use the original sender's address for the envelope-from

From: Sean Whitton <[email-masked]>
Date: Wed, 16 Mar 2022 13:23:26 -0700

If `message-sendmail-envelope-from' is `header' then the envelope-from
will be the original sender's address, not the resender's.  But when
resending, the envelope-from should be the resender's address.  Defuse
that particular case.

-- 
Sean Whitton
>From 03abba1ccdc8604ff7e59ab8b4c55d18185d0fd1 Mon Sep 17 00:00:00 2001
From: Sean Whitton <[email-masked]>
Date: Wed, 16 Mar 2022 13:19:57 -0700
Subject: [PATCH] Don't use the original sender's address as the envelope-from

* lisp/gnus/message.el (message-resend): Avoid setting the
envelope-from to the original sender's address rather than the
resender's.
---
 lisp/gnus/message.el | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 800c7dcea0..ad04a5e865 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -8016,7 +8016,18 @@ message-resend
 	    (select-safe-coding-system-function nil)
 	    message-required-mail-headers
 	    message-generate-hashcash
-	    rfc2047-encode-encoded-words)
+	    rfc2047-encode-encoded-words
+            ;; If `message-sendmail-envelope-from' is `header' then
+            ;; the envelope-from will be the original sender's
+            ;; address, not the resender's.  But when resending, the
+            ;; envelope-from should be the resender's address.  Defuse
+            ;; that particular case.
+            (message-sendmail-envelope-from
+              (and (not (and (eq message-sendmail-envelope-from
+                                 'obey-mail-envelope-from)
+                             (eq mail-envelope-from 'header)))
+                   (not (eq message-sendmail-envelope-from 'header))
+                   message-sendmail-envelope-from)))
 	(message-send-mail))
       (when gcc
 	(message-goto-eoh)
-- 
2.30.2