threads / discuss / 30762

How can I specify the "sendmail" program for git-send-email?

Subject: How can I specify the "sendmail" program for git-send-email?

## tl;dr

9 messages between Jun 11, 2012 and Jun 11, 2012.

replies: 8people: 4as markdown or json

Richard Yang· Jun 11, 2012, 07:32 UTC · lore
Hi, experts

I read the git-send-email manual and find the --smtp-server option can specify the sendmail-like program to send mail.

Then I use this option in command line --smtp-server=/usr/bin/msmtp This works.

While I found it not very convenient to write the option on command line every time, then I wrote it in the .gitconfig file in my home directory.

[sendmail]
	smtpserver = /usr/bin/msmtp
	smtppass       = 123456
	smtpuser       = weiyang@linux.vnet.ibm.com
        smtpserverport = 143
While this time I don't use the --smtp-server option in command line. 

And seems this time, it doesn't use the msmpt to send mail, since this time it fails.

Then my second approach is not correct? 
-- 
Richard Yang
Help you, Help me
Erik Faye-Lund· Jun 11, 2012, 08:23 UTC · re: Richard Yang · lore

Re: How can I specify the "sendmail" program for git-send-email?

On Mon, Jun 11, 2012 at 9:32 AM, Richard Yang <weiyang@linux.vnet.ibm.com> wrote:

Show 17 quoted lines
> Hi, experts
>
> I read the git-send-email manual and find the --smtp-server option can
> specify the sendmail-like program to send mail.
>
> Then I use this option in command line
> --smtp-server=/usr/bin/msmtp
> This works.
>
> While I found it not very convenient to write the option on command line
> every time, then I wrote it in the .gitconfig file in my home directory.
>
> [sendmail]
>        smtpserver = /usr/bin/msmtp
>        smtppass       = 123456
>        smtpuser       = weiyang@linux.vnet.ibm.com
>        smtpserverport = 143

The configuration-section for git send-mail is actually spelled "sendemail", and not "sendmail". Notice the additional 'e'.

http://git-scm.com/docs/git-send-email
Richard Yang· Jun 11, 2012, 09:04 UTC · re: Erik Faye-Lund · lore

Re: How can I specify the "sendmail" program for git-send-email?

On Mon, Jun 11, 2012 at 10:23:21AM +0200, Erik Faye-Lund wrote:
Show 22 quoted lines
>On Mon, Jun 11, 2012 at 9:32 AM, Richard Yang
><weiyang@linux.vnet.ibm.com> wrote:
>> Hi, experts
>>
>> I read the git-send-email manual and find the --smtp-server option can
>> specify the sendmail-like program to send mail.
>>
>> Then I use this option in command line
>> --smtp-server=/usr/bin/msmtp
>> This works.
>>
>> While I found it not very convenient to write the option on command line
>> every time, then I wrote it in the .gitconfig file in my home directory.
>>
>> [sendmail]
>>        smtpserver = /usr/bin/msmtp
>>        smtppass       = 123456
>>        smtpuser       = weiyang@linux.vnet.ibm.com
>>        smtpserverport = 143
>
>The configuration-section for git send-mail is actually spelled
>"sendemail", and not "sendmail". Notice the additional 'e'.
Oops, a stupid mistake.
Thanks all :)
>
>http://git-scm.com/docs/git-send-email
-- 
Richard Yang
Help you, Help me
Erik Faye-Lund· Jun 11, 2012, 09:15 UTC · re: Richard Yang · lore

Re: How can I specify the "sendmail" program for git-send-email?

On Mon, Jun 11, 2012 at 11:04 AM, Richard Yang <weiyang@linux.vnet.ibm.com> wrote:

Show 26 quoted lines
> On Mon, Jun 11, 2012 at 10:23:21AM +0200, Erik Faye-Lund wrote:
>>On Mon, Jun 11, 2012 at 9:32 AM, Richard Yang
>><weiyang@linux.vnet.ibm.com> wrote:
>>> Hi, experts
>>>
>>> I read the git-send-email manual and find the --smtp-server option can
>>> specify the sendmail-like program to send mail.
>>>
>>> Then I use this option in command line
>>> --smtp-server=/usr/bin/msmtp
>>> This works.
>>>
>>> While I found it not very convenient to write the option on command line
>>> every time, then I wrote it in the .gitconfig file in my home directory.
>>>
>>> [sendmail]
>>>        smtpserver = /usr/bin/msmtp
>>>        smtppass       = 123456
>>>        smtpuser       = weiyang@linux.vnet.ibm.com
>>>        smtpserverport = 143
>>
>>The configuration-section for git send-mail is actually spelled
>>"sendemail", and not "sendmail". Notice the additional 'e'.
> Oops, a stupid mistake.
>
> Thanks all :)

Well, I've always been slightly annoyed by the "send-mail" vs "sendemail" inconsistency. Perhaps we could do something along these lines (plus all documentation-updates, omitted for clarity) to reduce the risk of confusion?

Yeah, the leaking of $identity between different sections is a bit suboptimal, but as a fallback-mechanism I don't think it actually matters much.

diff --git a/git-send-email.perl b/git-send-email.perl
index 03292fd..d167d96 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -375,7 +375,11 @@ sub read_config {
 	}
 }

-# read configuration from [sendemail "$identity"], fall back on [sendemail]
+# read configuration from [sendmail "$identity"], fall back on [sendmail]
+$identity = Git::config(@repo, "sendmail.identity") unless (defined $identity);
+read_config("sendmail.$identity") if (defined $identity);
+read_config("sendmail");
+# same as above, but with legacy "sendemail"
 $identity = Git::config(@repo, "sendemail.identity") unless (defined
$identity);
 read_config("sendemail.$identity") if (defined $identity);
 read_config("sendemail");
konglu@minatec.inpg.fr· Jun 11, 2012, 09:25 UTC · re: Erik Faye-Lund · lore

Re: How can I specify the "sendmail" program for git-send-email?

Erik Faye-Lund <kusmabite@gmail.com> a écrit :
Show 8 quoted lines
> Well, I've always been slightly annoyed by the "send-mail" vs
> "sendemail" inconsistency. Perhaps we could do something along these
> lines (plus all documentation-updates, omitted for clarity) to reduce
> the risk of confusion?
>
> Yeah, the leaking of $identity between different sections is a bit
> suboptimal, but as a fallback-mechanism I don't think it actually
> matters much.
[...]
Show 11 quoted lines
> -# read configuration from [sendemail "$identity"], fall back on [sendemail]
> +# read configuration from [sendmail "$identity"], fall back on [sendmail]
> +$identity = Git::config(@repo, "sendmail.identity") unless (defined  
> $identity);
> +read_config("sendmail.$identity") if (defined $identity);
> +read_config("sendmail");
> +# same as above, but with legacy "sendemail"
>  $identity = Git::config(@repo, "sendemail.identity") unless (defined
> $identity);
>  read_config("sendemail.$identity") if (defined $identity);
>  read_config("sendemail");

I'm not very familiar with perl, but do you mean to replace "sendemail" by "sendmail" or just make "sendmail" usable in the config file, along with "sendemail" ?

Erik Faye-Lund· Jun 11, 2012, 09:45 UTC · re: konglu@minatec.inpg.fr · lore

Re: How can I specify the "sendmail" program for git-send-email?

On Mon, Jun 11, 2012 at 11:25 AM,  <konglu@minatec.inpg.fr> wrote:
Show 34 quoted lines
>
> Erik Faye-Lund <kusmabite@gmail.com> a écrit :
>
>
>> Well, I've always been slightly annoyed by the "send-mail" vs
>> "sendemail" inconsistency. Perhaps we could do something along these
>> lines (plus all documentation-updates, omitted for clarity) to reduce
>> the risk of confusion?
>>
>> Yeah, the leaking of $identity between different sections is a bit
>> suboptimal, but as a fallback-mechanism I don't think it actually
>> matters much.
>
>
> [...]
>
>
>> -# read configuration from [sendemail "$identity"], fall back on
>> [sendemail]
>> +# read configuration from [sendmail "$identity"], fall back on [sendmail]
>> +$identity = Git::config(@repo, "sendmail.identity") unless (defined
>> $identity);
>> +read_config("sendmail.$identity") if (defined $identity);
>> +read_config("sendmail");
>> +# same as above, but with legacy "sendemail"
>>  $identity = Git::config(@repo, "sendemail.identity") unless (defined
>> $identity);
>>  read_config("sendemail.$identity") if (defined $identity);
>>  read_config("sendemail");
>
>
> I'm not very familiar with perl, but do you mean to replace "sendemail" by
> "sendmail" or just make "sendmail" usable in the config file, along with
> "sendemail" ?

I meant to switch to "sendmail", but keep "sendemail" around to be backwards compatible. At some point in the future it might make sense to remove the support for "sendemail", though.

konglu@minatec.inpg.fr· Jun 11, 2012, 10:13 UTC · re: Erik Faye-Lund · lore

Re: How can I specify the "sendmail" program for git-send-email?

Erik Faye-Lund <kusmabite@gmail.com> a écrit :
> I meant to switch to "sendmail", but keep "sendemail" around to be
> backwards compatible.

Sounds good to me. That would avoid everyone to change their config file and, for those who haven't set [sendemail], it would be more natural to type "sendmail" than "sendemail" (that's my personal opinion though).

Junio C Hamano· Jun 11, 2012, 15:57 UTC · re: Erik Faye-Lund · lore

Re: How can I specify the "sendmail" program for git-send-email?

Erik Faye-Lund <kusmabite@gmail.com> writes:
> Well, I've always been slightly annoyed by the "send-mail" vs
> "sendemail" inconsistency.

Hrm, isn't it between "sendmail" (as in /usr/lib/sendmail) and "send-email" (a subcommand of git)?

> Perhaps we could do something along these
> lines (plus all documentation-updates, omitted for clarity) to reduce
> the risk of confusion?

Assuming that the contrast between "sendmail" and "git send-email" is what you are trying to address, I fail to see how it would help reducing the confusion if you start naming configuration variables used by "git send-email" without E.

If the proposal were to give "send-email.$var" synomyms to corresponding "sendemail.$var" variables, I would have been persuaded to believe it may alleviate potential confusion, though.

Show 22 quoted lines
> Yeah, the leaking of $identity between different sections is a bit
> suboptimal, but as a fallback-mechanism I don't think it actually
> matters much.
>
> diff --git a/git-send-email.perl b/git-send-email.perl
> index 03292fd..d167d96 100755
> --- a/git-send-email.perl
> +++ b/git-send-email.perl
> @@ -375,7 +375,11 @@ sub read_config {
>  	}
>  }
>
> -# read configuration from [sendemail "$identity"], fall back on [sendemail]
> +# read configuration from [sendmail "$identity"], fall back on [sendmail]
> +$identity = Git::config(@repo, "sendmail.identity") unless (defined $identity);
> +read_config("sendmail.$identity") if (defined $identity);
> +read_config("sendmail");
> +# same as above, but with legacy "sendemail"
>  $identity = Git::config(@repo, "sendemail.identity") unless (defined
> $identity);
>  read_config("sendemail.$identity") if (defined $identity);
>  read_config("sendemail");
Erik Faye-Lund· Jun 11, 2012, 16:25 UTC · re: Junio C Hamano · lore

Re: How can I specify the "sendmail" program for git-send-email?

On Mon, Jun 11, 2012 at 5:57 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 8 quoted lines
> Erik Faye-Lund <kusmabite@gmail.com> writes:
>
>> Well, I've always been slightly annoyed by the "send-mail" vs
>> "sendemail" inconsistency.
>
> Hrm, isn't it between "sendmail" (as in /usr/lib/sendmail) and
> "send-email" (a subcommand of git)?
>
Ugh, you are right. My brain must have been defective :)
Show 9 quoted lines
>> Perhaps we could do something along these
>> lines (plus all documentation-updates, omitted for clarity) to reduce
>> the risk of confusion?
>
> Assuming that the contrast between "sendmail" and "git send-email"
> is what you are trying to address, I fail to see how it would help
> reducing the confusion if you start naming configuration variables
> used by "git send-email" without E.
>
No, this was just me being a moron.
> If the proposal were to give "send-email.$var" synomyms to
> corresponding "sendemail.$var" variables, I would have been
> persuaded to believe it may alleviate potential confusion, though.

This was really the way I wanted to go, but I somehow got unsure about the legality of the dashes in config sections. I'm a bit skeptical to introducing new non-letter characters if we don't have to.

So let's just drop my suggestion. I wasn't thinking straight.

← back to recent threads