git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git send-email SMTP password command

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Jun 17, 2024, 00:22 UTC
Message-ID
<Zm-ByA09z3jhij6u@tapette.crustytoothpaste.net>
In-Reply-To
<87ed8w33l8.fsf@baxters.nz>
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
Previous: Jeremy BaxterNext: Jeremy Baxter
Message 2 of 3 in “git send-email SMTP password command”
  1. Jeremy BaxterJun 16, 2024
  2. brian m. carlsonJun 17, 2024
  3. Jeremy BaxterJun 24, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.