* [PATCH 0/2] Add support for SMTP server options
@ 2010-09-04 16:06 Pascal Obry
2010-09-04 16:06 ` [PATCH 1/2] Minor indentation fix Pascal Obry
2010-09-04 16:06 ` [PATCH 2/2] New send-email option smtpserveroptions Pascal Obry
0 siblings, 2 replies; 6+ messages in thread
From: Pascal Obry @ 2010-09-04 16:06 UTC (permalink / raw)
To: git; +Cc: Pascal Obry
I'm not familiar at all with Perl so comments on style or usage most
welcomed. This patch is to introduce a way to pass specific options to the
SMTP server used by git-send-email.
I need that to be able to use different SMTP account (wanadoo, gmail...) on
some Git repositories to send over proper identity.
Pascal Obry (2):
Minor indentation fix.
New send-email option smtpserveroptions.
Documentation/git-send-email.txt | 5 +++++
git-send-email.perl | 11 +++++++++--
2 files changed, 14 insertions(+), 2 deletions(-)
--
1.7.2.2.277.gb49c4
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] Minor indentation fix.
2010-09-04 16:06 [PATCH 0/2] Add support for SMTP server options Pascal Obry
@ 2010-09-04 16:06 ` Pascal Obry
2010-09-04 16:06 ` [PATCH 2/2] New send-email option smtpserveroptions Pascal Obry
1 sibling, 0 replies; 6+ messages in thread
From: Pascal Obry @ 2010-09-04 16:06 UTC (permalink / raw)
To: git; +Cc: Pascal Obry
---
git-send-email.perl | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/git-send-email.perl b/git-send-email.perl
index 6dab3bf..0063606 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -212,7 +212,7 @@ my %config_settings = (
"smtpserverport" => \$smtp_server_port,
"smtpuser" => \$smtp_authuser,
"smtppass" => \$smtp_authpass,
- "smtpdomain" => \$smtp_domain,
+ "smtpdomain" => \$smtp_domain,
"to" => \@to,
"cc" => \@initial_cc,
"cccmd" => \$cc_cmd,
--
1.7.2.2.277.gb49c4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] New send-email option smtpserveroptions.
2010-09-04 16:06 [PATCH 0/2] Add support for SMTP server options Pascal Obry
2010-09-04 16:06 ` [PATCH 1/2] Minor indentation fix Pascal Obry
@ 2010-09-04 16:06 ` Pascal Obry
2010-09-04 16:21 ` Junio C Hamano
1 sibling, 1 reply; 6+ messages in thread
From: Pascal Obry @ 2010-09-04 16:06 UTC (permalink / raw)
To: git; +Cc: Pascal Obry
The new command line parameter --smtp-server-options or default
configuration sendemail.smtpserveroptions can be used to pass
specific options to the SMTP server.
---
Documentation/git-send-email.txt | 5 +++++
git-send-email.perl | 9 ++++++++-
2 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
index c283084..425b102 100644
--- a/Documentation/git-send-email.txt
+++ b/Documentation/git-send-email.txt
@@ -157,6 +157,11 @@ user is prompted for a password while the input is masked for privacy.
`/usr/lib/sendmail` if such program is available, or
`localhost` otherwise.
+--smtp-server-options=<options>::
+ If set, specifies the outgoing SMTP server options to use.
+ Default value can be specified by the 'sendemail.smtpserveroptions'
+ configuration option.
+
--smtp-server-port=<port>::
Specifies a port different from the default port (SMTP
servers typically listen to smtp port 25, but may also listen to
diff --git a/git-send-email.perl b/git-send-email.perl
index 0063606..e5cdda7 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -60,6 +60,7 @@ git send-email [options] <file | directory | rev-list options >
--envelope-sender <str> * Email envelope sender.
--smtp-server <str:int> * Outgoing SMTP server to use. The port
is optional. Default 'localhost'.
+ --smtp-server-options <int> * Outgoing SMTP server options to use.
--smtp-server-port <int> * Outgoing SMTP server port.
--smtp-user <str> * Username for SMTP-AUTH.
--smtp-pass <str> * Password for SMTP-AUTH; not necessary.
@@ -188,7 +189,8 @@ sub do_edit {
# Variables with corresponding config settings
my ($thread, $chain_reply_to, $suppress_from, $signed_off_by_cc, $cc_cmd);
-my ($smtp_server, $smtp_server_port, $smtp_authuser, $smtp_encryption);
+my ($smtp_server, $smtp_server_port, $smtp_server_options);
+my ($smtp_authuser, $smtp_encryption);
my ($identity, $aliasfiletype, @alias_files, @smtp_host_parts, $smtp_domain);
my ($validate, $confirm);
my (@suppress_cc);
@@ -210,6 +212,7 @@ my %config_bool_settings = (
my %config_settings = (
"smtpserver" => \$smtp_server,
"smtpserverport" => \$smtp_server_port,
+ "smtpserveroptions" => \$smtp_server_options,
"smtpuser" => \$smtp_authuser,
"smtppass" => \$smtp_authpass,
"smtpdomain" => \$smtp_domain,
@@ -279,6 +282,7 @@ my $rc = GetOptions("sender|from=s" => \$sender,
"no-bcc" => \$no_bcc,
"chain-reply-to!" => \$chain_reply_to,
"smtp-server=s" => \$smtp_server,
+ "smtp-server-options=s" => \$smtp_server_options,
"smtp-server-port=s" => \$smtp_server_port,
"smtp-user=s" => \$smtp_authuser,
"smtp-pass:s" => \$smtp_authpass,
@@ -1015,6 +1019,9 @@ X-Mailer: git-send-email $gitversion
}
}
+ unshift (@sendmail_parameters, $smtp_server_options)
+ if (defined $smtp_server_options);
+
if ($dry_run) {
# We don't want to send the email.
} elsif ($smtp_server =~ m#^/#) {
--
1.7.2.2.277.gb49c4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] New send-email option smtpserveroptions.
2010-09-04 16:06 ` [PATCH 2/2] New send-email option smtpserveroptions Pascal Obry
@ 2010-09-04 16:21 ` Junio C Hamano
2010-09-04 16:39 ` Pascal Obry
0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2010-09-04 16:21 UTC (permalink / raw)
To: Pascal Obry; +Cc: git
Pascal Obry <pascal@obry.net> writes:
> diff --git a/git-send-email.perl b/git-send-email.perl
> index 0063606..e5cdda7 100755
> --- a/git-send-email.perl
> +++ b/git-send-email.perl
> @@ -60,6 +60,7 @@ git send-email [options] <file | directory | rev-list options >
> --envelope-sender <str> * Email envelope sender.
> --smtp-server <str:int> * Outgoing SMTP server to use. The port
> is optional. Default 'localhost'.
> + --smtp-server-options <int> * Outgoing SMTP server options to use.
Is it really an int?
> @@ -279,6 +282,7 @@ my $rc = GetOptions("sender|from=s" => \$sender,
> ...
> + "smtp-server-options=s" => \$smtp_server_options,
> @@ -1015,6 +1019,9 @@ X-Mailer: git-send-email $gitversion
> }
> }
>
> + unshift (@sendmail_parameters, $smtp_server_options)
> + if (defined $smtp_server_options);
> +
I suspect this would not work, unless you are aiming to add just a
singular $smtp_server_option, as the actual program invocation looks like
this later in the program:
} elsif ($smtp_server =~ m#^/#) {
my $pid = open my $sm, '|-';
defined $pid or die $!;
if (!$pid) {
exec($smtp_server, @sendmail_parameters) or die $!;
}
print $sm "$header\n$message";
Somebody in the code before this unshift needs to split the single string
in $smtp_server_options into multiple parameters, or better yet, it needs
to accept more than one --smtp-server-option=foo --smtp-server-option=bar
and accumulate them in @smtp_server_options.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] New send-email option smtpserveroptions.
2010-09-04 16:21 ` Junio C Hamano
@ 2010-09-04 16:39 ` Pascal Obry
2010-09-04 17:57 ` Ævar Arnfjörð Bjarmason
0 siblings, 1 reply; 6+ messages in thread
From: Pascal Obry @ 2010-09-04 16:39 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
Junio,
>> + --smtp-server-options <int> * Outgoing SMTP server options to use.
>
> Is it really an int?
Oups! Fixed.
>> + unshift (@sendmail_parameters, $smtp_server_options)
>> + if (defined $smtp_server_options);
>> +
>
> I suspect this would not work, unless you are aiming to add just a
> singular $smtp_server_option, as the actual program invocation looks like
> this later in the program:
>
> } elsif ($smtp_server =~ m#^/#) {
> my $pid = open my $sm, '|-';
> defined $pid or die $!;
> if (!$pid) {
> exec($smtp_server, @sendmail_parameters) or die $!;
> }
> print $sm "$header\n$message";
>
> Somebody in the code before this unshift needs to split the single string
> in $smtp_server_options into multiple parameters, or better yet, it needs
> to accept more than one --smtp-server-option=foo --smtp-server-option=bar
> and accumulate them in @smtp_server_options.
For sure this is above my expertise in Perl. As I said I have never
worked with Perl. If someone gives me some pointers I can give it a try
otherwise I surrender :)
Pascal.
--
--|------------------------------------------------------
--| Pascal Obry Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--| http://www.obry.net - http://v2p.fr.eu.org
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver keys.gnupg.net --recv-key F949BD3B
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] New send-email option smtpserveroptions.
2010-09-04 16:39 ` Pascal Obry
@ 2010-09-04 17:57 ` Ævar Arnfjörð Bjarmason
0 siblings, 0 replies; 6+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-09-04 17:57 UTC (permalink / raw)
To: pascal; +Cc: Junio C Hamano, git
On Sat, Sep 4, 2010 at 16:39, Pascal Obry <pascal.obry@gmail.com> wrote:
> For sure this is above my expertise in Perl. As I said I have never
> worked with Perl. If someone gives me some pointers I can give it a try
> otherwise I surrender :)
The best option, as Junio points out is to accumulate options with
--smtp-server-option=. The alternative is to to to parse shell
syntax. E.g. --options='--foo="bar blah" --foo=..' means you can't
split on \s+.
See the \@to option in GetOptions for how to do that.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-09-04 17:57 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-04 16:06 [PATCH 0/2] Add support for SMTP server options Pascal Obry
2010-09-04 16:06 ` [PATCH 1/2] Minor indentation fix Pascal Obry
2010-09-04 16:06 ` [PATCH 2/2] New send-email option smtpserveroptions Pascal Obry
2010-09-04 16:21 ` Junio C Hamano
2010-09-04 16:39 ` Pascal Obry
2010-09-04 17:57 ` Ævar Arnfjörð Bjarmason
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 NNTP newsgroup(s).