summaryrefslogtreecommitdiffstats
path: root/git-send-email.perl
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2007-04-26 04:37:22 +0200
committerJunio C Hamano <junkio@cox.net>2007-04-26 06:15:16 +0200
commitf073a592d6400b3aa653ce02943535bf917078b5 (patch)
tree4eed37c9f4ab095721532b1b37d2930e1cda9fc7 /git-send-email.perl
parentEnsure clean addresses are always used with Net::SMTP (diff)
downloadgit-f073a592d6400b3aa653ce02943535bf917078b5.tar.xz
git-f073a592d6400b3aa653ce02943535bf917078b5.zip
Allow users to optionally specify their envelope sender.
If your normal user is not the same user you are subscribed to a list with, then the default envelope sender used will cause your messages to bounce or silently vanish into the ether. This patch provides an optional parameter to set the envelope sender. To use it with the sendmail binary, you must have privileges to use the -f parameter! Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-send-email.perl')
-rwxr-xr-xgit-send-email.perl10
1 files changed, 9 insertions, 1 deletions
diff --git a/git-send-email.perl b/git-send-email.perl
index 35c4722a15..56c2936f27 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -79,6 +79,8 @@ Options:
--dry-run Do everything except actually send the emails.
+ --envelope-sender Specify the envelope sender used to send the emails.
+
EOT
exit(1);
}
@@ -139,6 +141,7 @@ my (@to,@cc,@initial_cc,@bcclist,@xh,
my ($chain_reply_to, $quiet, $suppress_from, $no_signed_off_cc,
$dry_run) = (1, 0, 0, 0, 0);
my $smtp_server;
+my $envelope_sender;
# Example reply to:
#$initial_reply_to = ''; #<20050203173208.GA23964@foobar.com>';
@@ -177,6 +180,7 @@ my $rc = GetOptions("from=s" => \$from,
"suppress-from" => \$suppress_from,
"no-signed-off-cc|no-signed-off-by-cc" => \$no_signed_off_cc,
"dry-run" => \$dry_run,
+ "envelope-sender=s" => \$envelope_sender,
);
unless ($rc) {
@@ -476,7 +480,11 @@ X-Mailer: git-send-email $gitversion
}
my @sendmail_parameters = ('-i', @recipients);
- my $raw_from = extract_valid_address($from);
+ my $raw_from = $from;
+ $raw_from = $envelope_sender if (defined $envelope_sender);
+ $raw_from = extract_valid_address($raw_from);
+ unshift (@sendmail_parameters,
+ '-f', $raw_from) if(defined $envelope_sender);
if ($dry_run) {
# We don't want to send the email.