git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] send-email: don't duplicate Reply-to: in intro message

From
NNeilBrown <neilb@ownmail.net>
Date
Sep 17, 2025, 06:32 UTC
Message-ID
<175809074627.1696783.67425889158412786@noble.neil.brown.name>
From: NeilBrown <neil@brown.name>
If I run
  git send-email --compose --reply-to 'ME <my@address.net>' .....

and edit the intro message, then it will get two copies of the Reply-To field. gmail.com rejects such messages.

This happens because send-email reads the edited message examining the headers. For recognised headers the content is extract to use in constructing the final message and for possible inclusion in the patch emails. Unrecognised headers are gathered (in @xh) to be passed though uninterpreted.

Unfortunately "Reply-To" is not recognised in this process so it is added to @xh as an uninterpreted header, but also generated from the $reply_to variable in gen_header(), resulting in two copies

So:

Add parsing to the loop in pre_process_file() to recognise a Reply-to header and to store the result in $reply_to. This means that the intro message will not get a second header and also means that any changes made to the Reply-To header during editing will be incorporated in the $reply_to variable and so included in all the generated email messages.

Signed-off-by: NeilBrown <neil@brown.name>
---
 git-send-email.perl | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/git-send-email.perl b/git-send-email.perl
index 437f8ac46a85..e2248c223119 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -1931,6 +1931,9 @@ sub pre_process_file {
 					$in_reply_to = $1;
 				}
 			}
+			elsif (/^Reply-To: (.*)/i) {
+				$reply_to = $1;
+			}
 			elsif (/^References: (.*)/i) {
 				if (!$initial_in_reply_to || $thread) {
 					$references = $1;
-- 
2.50.0.107.gf914562f5916.dirty
Next: Eric Sunshine
Message 1 of 3 in “send-email: don't duplicate Reply-to: in intro message”
  1. send-email: don't duplicate Reply-to: in intro messageNeilBrown, Sep 17, 2025
  2. Eric SunshineSep 17, 2025
  3. Junio C HamanoSep 17, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.