# git send-email SMTP password command

3 messages from 2024-06-16 to 2024-06-24. Participants: Jeremy Baxter, brian m. carlson.
Thread: https://gitlist.dev/t/61638

## Jeremy Baxter, 2024-06-16 22:49

Subject: git send-email SMTP password command
Message-ID: <87ed8w33l8.fsf@baxters.nz>
URL: https://gitlist.dev/e/87ed8w33l8.fsf%40baxters.nz

```
Hi list, I was wondering if it's possible to configure send-email's
default SMTP client to execute a shell command and capture its output to
get the SMTP password rather than prompting the user on the terminal.

Would anyone know if this is possible without setting
sendemail.sendmailCmd?

Thanks,

Jeremy

```

## brian m. carlson, 2024-06-17 00:22

Subject: Re: git send-email SMTP password command
Message-ID: <Zm-ByA09z3jhij6u@tapette.crustytoothpaste.net>
URL: https://gitlist.dev/e/Zm-ByA09z3jhij6u%40tapette.crustytoothpaste.net
In-Reply-To: <87ed8w33l8.fsf@baxters.nz>

```
On 2024-06-16 at 22:49:55, Jeremy Baxter wrote:
> Hi list, I was wondering if it's possible to configure send-email's
> default SMTP client to execute a shell command and capture its output to
> get the SMTP password rather than prompting the user on the terminal.
> 
> Would anyone know if this is possible without setting
> sendemail.sendmailCmd?

You can use a credential helper, and that can be a shell command.  For
example, you can do this:

  git -c credential.helper= \
      -c credential.helper='!f(){ echo username="$USER"; echo password="$PASS";};f' send-email ...

This resets the list of credential helpers (with the empty value) to
remove any you may have already set, and then uses that shell script to
read the credentials from the environment.  The documentation on the
protocol is in git-credentials(1) and gitcredentials(7).

You can also use your regular credential helper to store the
credentials, in which case you need not set any -c options at all.

Note that, in general, this only works for SASL authentication that uses
usernames and passwords (e.g., PLAIN, SCRAM-SHA-256, etc.), and not
things like GSSAPI (Kerberos), but you also don't need a credential
helper for GSSAPI.
-- 
brian m. carlson (they/them or he/him)
Toronto, Ontario, CA

```

## Jeremy Baxter, 2024-06-24 06:01

Subject: Re: git send-email SMTP password command
Message-ID: <87bk3qc216.fsf@baxters.nz>
URL: https://gitlist.dev/e/87bk3qc216.fsf%40baxters.nz
In-Reply-To: <Zm-ByA09z3jhij6u@tapette.crustytoothpaste.net>

```
"brian m. carlson" <sandals@crustytoothpaste.net> writes:
> You can use a credential helper, and that can be a shell command.  For
> example, you can do this:
>
>   git -c credential.helper= \
>       -c credential.helper='!f(){ echo username="$USER"; echo password="$PASS";};f' send-email ...
>
> This resets the list of credential helpers (with the empty value) to
> remove any you may have already set, and then uses that shell script to
> read the credentials from the environment.  The documentation on the
> protocol is in git-credentials(1) and gitcredentials(7).
>
> You can also use your regular credential helper to store the
> credentials, in which case you need not set any -c options at all.

Excellent, that's working for me now. Thanks a lot!

Jeremy

```
