* [PATCH] send-email: Support separate Reply-To address
@ 2018-01-12 10:47 Christian Ludwig
2018-01-12 12:39 ` SZEDER Gábor
0 siblings, 1 reply; 2+ messages in thread
From: Christian Ludwig @ 2018-01-12 10:47 UTC (permalink / raw)
To: git; +Cc: Christian Ludwig
In some projects contributions from groups are only accepted from a
common group email address. But every individual may want to recieve
replies to her own personal address. That's what we have 'Reply-To'
headers for in SMTP.
Introduce an optional '--reply-to' command line option. Unfortunately
the $reply_to variable name was already taken for the 'In-Reply-To'
header field. To reduce code churn, use $reply_address as variable
name instead.
Signed-off-by: Christian Ludwig <chrissicool@gmail.com>
---
Documentation/git-send-email.txt | 5 +++++
git-send-email.perl | 18 +++++++++++++++++-
t/t9001-send-email.sh | 2 ++
3 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
index 8060ea35c..c3bc622b1 100644
--- a/Documentation/git-send-email.txt
+++ b/Documentation/git-send-email.txt
@@ -84,6 +84,11 @@ See the CONFIGURATION section for `sendemail.multiEdit`.
the value of GIT_AUTHOR_IDENT, or GIT_COMMITTER_IDENT if that is not
set, as returned by "git var -l".
+--reply-to=<address>::
+ Specify the address that replies from reciepients should
+ to go. Use this if replies to messages should go to another
+ address than what is specified with the --from parameter.
+
--in-reply-to=<identifier>::
Make the first mail (or all the mails with `--no-thread`) appear as a
reply to the given Message-Id, which avoids breaking threads to
diff --git a/git-send-email.perl b/git-send-email.perl
index edcc6d346..fc21081d3 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -56,6 +56,7 @@ git send-email --dump-aliases
--[no-]cc <str> * Email Cc:
--[no-]bcc <str> * Email Bcc:
--subject <str> * Email "Subject:"
+ --reply-to <str> * Email "Reply-To:"
--in-reply-to <str> * Email "In-Reply-To:"
--[no-]xmailer * Add "X-Mailer:" header (default).
--[no-]annotate * Review each patch that will be sent in an editor.
@@ -166,7 +167,7 @@ my $re_encoded_word = qr/=\?($re_token)\?($re_token)\?($re_encoded_text)\?=/;
# Variables we fill in automatically, or via prompting:
my (@to,$no_to,@initial_to,@cc,$no_cc,@initial_cc,@bcclist,$no_bcc,@xh,
- $initial_reply_to,$initial_subject,@files,
+ $initial_reply_to,$reply_address,$initial_subject,@files,
$author,$sender,$smtp_authpass,$annotate,$use_xmailer,$compose,$time);
my $envelope_sender;
@@ -315,6 +316,7 @@ die __("--dump-aliases incompatible with other options\n")
$rc = GetOptions(
"sender|from=s" => \$sender,
"in-reply-to=s" => \$initial_reply_to,
+ "reply-to=s" => \$reply_address,
"subject=s" => \$initial_subject,
"to=s" => \@initial_to,
"to-cmd=s" => \$to_cmd,
@@ -677,6 +679,7 @@ if ($compose) {
my $tpl_sender = $sender || $repoauthor || $repocommitter || '';
my $tpl_subject = $initial_subject || '';
my $tpl_reply_to = $initial_reply_to || '';
+ my $tpl_reply_address = $reply_address || '';
print $c <<EOT1, Git::prefix_lines("GIT: ", __ <<EOT2), <<EOT3;
From $tpl_sender # This line is ignored.
@@ -688,6 +691,7 @@ for the patch you are writing.
Clear the body content if you don't wish to send a summary.
EOT2
From: $tpl_sender
+Reply-To: $tpl_reply_address
Subject: $tpl_subject
In-Reply-To: $tpl_reply_to
@@ -738,6 +742,9 @@ EOT3
} elsif (/^In-Reply-To:\s*(.+)\s*$/i) {
$initial_reply_to = $1;
next;
+ } elsif (/^Reply-To:\s*(.+)\s*$/i) {
+ $reply_address = $1;
+ next;
} elsif (/^From:\s*(.+)\s*$/i) {
$sender = $1;
next;
@@ -884,6 +891,12 @@ if (defined $initial_reply_to) {
$initial_reply_to = "<$initial_reply_to>" if $initial_reply_to ne '';
}
+if (defined $reply_address) {
+ $reply_address =~ s/^\s+|\s+$//g;
+ ($reply_address) = expand_aliases($reply_address);
+ $reply_address = sanitize_address($reply_address);
+}
+
if (!defined $smtp_server) {
my @sendmail_paths = qw( /usr/sbin/sendmail /usr/lib/sendmail );
push @sendmail_paths, map {"$_/sendmail"} split /:/, $ENV{PATH};
@@ -1315,6 +1328,9 @@ Message-Id: $message_id
$header .= "In-Reply-To: $reply_to\n";
$header .= "References: $references\n";
}
+ if ($reply_address) {
+ $header .= "Reply-To: $reply_address\n";
+ }
if (@xh) {
$header .= join("\n", @xh) . "\n";
}
diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh
index 81869d891..c62318a78 100755
--- a/t/t9001-send-email.sh
+++ b/t/t9001-send-email.sh
@@ -205,6 +205,7 @@ Message-Id: MESSAGE-ID-STRING
X-Mailer: X-MAILER-STRING
In-Reply-To: <unique-message-id@example.com>
References: <unique-message-id@example.com>
+Reply-To: Reply <reply@example.com>
Result: OK
EOF
@@ -297,6 +298,7 @@ test_expect_success $PREREQ 'Show all headers' '
--dry-run \
--suppress-cc=sob \
--from="Example <from@example.com>" \
+ --reply-to="Reply <reply@example.com>" \
--to=to@example.com \
--cc=cc@example.com \
--bcc=bcc@example.com \
--
2.15.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] send-email: Support separate Reply-To address
2018-01-12 10:47 [PATCH] send-email: Support separate Reply-To address Christian Ludwig
@ 2018-01-12 12:39 ` SZEDER Gábor
0 siblings, 0 replies; 2+ messages in thread
From: SZEDER Gábor @ 2018-01-12 12:39 UTC (permalink / raw)
To: Christian Ludwig; +Cc: SZEDER Gábor, git
> In some projects contributions from groups are only accepted from a
> common group email address. But every individual may want to recieve
> replies to her own personal address. That's what we have 'Reply-To'
> headers for in SMTP.
>
> Introduce an optional '--reply-to' command line option. Unfortunately
> the $reply_to variable name was already taken for the 'In-Reply-To'
> header field. To reduce code churn, use $reply_address as variable
> name instead.
That $reply_to variable is only accessed in 6 lines. I wouldn't
consider it that much of a code churn to rename it in a preparatory
patch.
> Signed-off-by: Christian Ludwig <chrissicool@gmail.com>
> ---
> Documentation/git-send-email.txt | 5 +++++
> git-send-email.perl | 18 +++++++++++++++++-
> t/t9001-send-email.sh | 2 ++
> 3 files changed, 24 insertions(+), 1 deletion(-)
Please add the new option to the completion script as well, to keep it
up to date.
> diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
> index 8060ea35c..c3bc622b1 100644
> --- a/Documentation/git-send-email.txt
> +++ b/Documentation/git-send-email.txt
> @@ -84,6 +84,11 @@ See the CONFIGURATION section for `sendemail.multiEdit`.
> the value of GIT_AUTHOR_IDENT, or GIT_COMMITTER_IDENT if that is not
> set, as returned by "git var -l".
>
> +--reply-to=<address>::
> + Specify the address that replies from reciepients should
s/reciepients/recipients/
And I don't like that "that" and would prefer e.g. "where" instead,
but I'd rather leave this to the native English speakers.
> + to go. Use this if replies to messages should go to another
s/to go/go to/
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-01-12 12:40 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-12 10:47 [PATCH] send-email: Support separate Reply-To address Christian Ludwig
2018-01-12 12:39 ` SZEDER Gábor
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).