threads / discuss / 61638

git send-email SMTP password command

Subject: git send-email SMTP password command

## tl;dr

3 messages between Jun 16, 2024 and Jun 24, 2024.

replies: 2people: 2as markdown or json

Jeremy Baxter· Jun 16, 2024, 22:49 UTC · lore

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· Jun 17, 2024, 00:22 UTC · re: Jeremy Baxter · lore

Re: git send-email SMTP password command

On 2024-06-16 at 22:49:55, Jeremy Baxter wrote:
Show 6 quoted lines
> 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· Jun 24, 2024, 06:01 UTC · re: brian m. carlson · lore

Re: git send-email SMTP password command

"brian m. carlson" <sandals@crustytoothpaste.net> writes:
Show 13 quoted lines
> 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

← back to recent threads