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

Re: Setting up `send-email` for SSL, and then using GCM (Git Credential Manager)

From
Philip Oakley <philipoakley@iee.email>
Date
Apr 30, 2022, 16:31 UTC
Message-ID
<a47aa216-958a-f8a9-e9bb-be6d56c05f2d@iee.email>
In-Reply-To
<2f8567f7-6d9c-e79b-9a05-7dd55cb40224@iee.email>

A catch up email to report where I got to; some successes and some remaining todos. Details in-line with original query.

On 16/04/2022 16:14, Philip Oakley wrote:
Show 13 quoted lines
> (added Git List back - should be non HTML now ;-)
>
> On 16/04/2022 15:49, Ævar Arnfjörð Bjarmason wrote:
>> I'm on mobile so sorry for the off list HTML, but
>> 1. No it doesn't have GCM integration.
> Thanks for clarifying that.
>
>> 2. Have you tried debugging with e.g. stunnel and leaving the
>> encryption out of git send email
> Sounds useful. I hadn't realised what 'stunnel' did beforehand.. 
> Hopefully it'll let me see how the server that hosts my domain is
> responding (or not).
> At the moment I'm doing my investigation from my win10 machine...

I didn't , in the end, use `stunnel`, but it looks like the right tool for more detailed investigation.

Show 7 quoted lines
>
>> 3. I find all things email so much less of a hassle by setting up a
>> local "open relay" exim or other real MTA on my laptop.
>>
> I suspect (hope) that once I've cracked the access method to the remote
> email server that I'll be able to set my gitconfig so that `send-email`
> will Just Work(tm), minus the GCM aspiration ;-)

Ended up using plain port 25 SMTP + pwd, which wasn't advertised as available by my domain provider. Not the full solution but a start. At least I now have a working `send-email` that is not locked to my home ISP connection.

Show 6 quoted lines
>
>> Maybe that helps, maybe not, it sidesteps your questions a bit, but
>> maybe in a way where you won't need to worry about git send email.
> It has been a help.
>
> Philip

While intermittently trying stuff, I was also able to get the `git imap-send -v` settings to work (port 993). I did need to change the path to my 'Drafts' mailbox (it's not below 'Inbox.' in my Thunderbird). Only tested with `sslVerify = false`.

The `-v` did indicate that the GCM was being invoked, based on some warning text but I haven't taken that further. "warning: see https://aka.ms/gcm/autodetect for more information."

Show 16 quoted lines
>
>> On Sat, Apr 16, 2022, 16:04 Philip Oakley <philipoakley@iee.email> wrote:
>>
>>     This maybe a wXYz-Problem. But I'm stuck at getting SSL to work with
>>     `send-email`.
>>
>>     I'm trying to update both my home Windows PC (win10) and my Ubuntu
>>     travel laptop (an old-Acer-i5) `send-email` setup/config to use my
>>     personal email domain (with authentication), rather than my old
>>     home ISP
>>     locked (no auth) connection, but I'm struggling.
>>
>>     Z) Does the GCM (Git Credential Manager) integrate well with
>>     send-email,
>>     and what guidance is available for setting up and debugging the
>>     `send-email` configuration?
Maybe should raise an issue with GCM on supporting send-email and imap-send?
Show 20 quoted lines
>>     Y) It's not clear what I should see in the terminal window in either
>>     Git-for-Windows or Ubuntu when testing the `git send-email` command -
>>     without/with using GCM.
>>
>>     w) Some back story. I set up my existing telephone-line-locked home
>>     send-email config many years ago around the time of dial-up/ADSL. My
>>     router logs into my ISP giving me an open port 25 for SMTP (though
>>     doesn't advertise that any more). My config for the ISP is simple,
>>     needing only the `smtpServer, smtpServerPort`, and my `from,
>>     suppressfrom, & chainreplyto` settings. It works for both the Win
>>     PC and
>>     my Ubuntu laptop, but I can only use this when at home.
>>
>>     I also have a personal email domain (iee.email) whose authentication
>>     works with Thunderbird for the WinPC at home, and the Ubuntu laptop at
>>     home and when away from home.  I'd like to be able to use `
>>     send-email`
>>     via the personal email domain on the laptop when away from home (final
>>     goal), and also match that `send-email` use on the Win PC (which would
>>     also allow easy switching ISP when needed).
So port 25 to the rescue as noted. Sufficient to do work.
Show 47 quoted lines
>>
>>     X) Where I've reached. I've discovered `sendemail.identity`, so at
>>     least
>>     I can have both configurations available for selection [7]. I've added
>>     the --smtp-debug=1` with little insight. I've hit a brick wall with
>>     respect to establishing the connection (I think). It's not clear
>>     if any
>>     authentication (password stuff) has started.
>>
>>     I fail to get the "<<<220 xxxxx   server ready" reply that my ISP
>>     identity gives, rather I get "Net::SMTP: Net::Cmd::getline():
>>     unexpected
>>     EOF on command channel: Connection reset by peer ... Unable to
>>     initialize SMTP properly. Check config and use --smtp-debug. VALUES:
>>     server=smtp.hosts.co.uk <http://smtp.hosts.co.uk> encryption=
>>     hello=localhost.localdomain port=465"
>>
>>     I've added below the terminal responses [1,3] and extracts of the
>>     config
>>     [2,4] for my test 'cover-letter'. Plus my Thunderbird settings [5] for
>>     comparison. Git build [6]. Domain provider advice [8].
>>
>>     Thoughts: Maybe the setting I need for `git-end-email` don't match
>>     those
>>     used by Thunderbird; Is there extra debug info if I set some extra
>>     parameters. Maybe some other tool can provide insight into what's
>>     failing?
>>
>>     Any suggestions?
>>     --
>>     Philip
>>
>>     [1] Failing case
>>     phili@Philip-Win10 MINGW64 /c/git-sdk-64/usr/src/git
>>     (die_preserve_ggg)
>>     $ git send-email --identity=Names   --to="Philip Oakley
>>     <philipoakley@iee.email>" --smtp-debug=1  0000*.patch
>>     0000-cover-letter.patch
>>     Net::SMTP>>> Net::SMTP(3.13)
>>     Net::SMTP>>>   Net::Cmd(3.13)
>>     Net::SMTP>>>     Exporter(5.76)
>>     Net::SMTP>>>   IO::Socket::IP(0.41)
>>     Net::SMTP>>>     IO::Socket(1.46)
>>     Net::SMTP>>>       IO::Handle(1.46)
>>     Net::SMTP: Net::Cmd::getline(): unexpected EOF on command channel:
>>     Connection reset by peer at C:/Program
>>     Files/Git/mingw64/libexec/git-core\git-send-email line 1698.

I've still to delve into that part of the code. I'm cautious of it being a bit of a tar pit when other solutions may be simpler (e.g. continuing with the port 25 solution).

The choice of implicit vs explicit ssl is still something I haven't fully understood, though the explanation of the relationship between methods at https://stackoverflow.com/a/29022120/717355 was useful. How the implicit ssl is started is something I'm still unfamiliar with.

Show 18 quoted lines
>>     Unable to initialize SMTP properly. Check config and use --smtp-debug.
>>     VALUES: server=smtp.hosts.co.uk <http://smtp.hosts.co.uk>
>>     encryption= hello=localhost.localdomain
>>     port=465 at C:/Program
>>     Files/Git/mingw64/libexec/git-core\git-send-email
>>     line 1725.
>>
>>     phili@Philip-Win10 MINGW64 /c/git-sdk-64/usr/src/git
>>     (die_preserve_ggg)
>>
>>     ---
>>     [2]
>>     [sendemail "Names"]
>>         chainreplyto = false
>>         from = Philip Oakley <philipoakley@iee.email>
>>         suppressfrom = true
>>         smtpServer = smtp.hosts.co.uk <http://smtp.hosts.co.uk>
>>         smtpServerPort = 465
port 25 works here!
Show 139 quoted lines
>>         smptEncryption = ssl
>>         smtpUser = iee.email
>>
>>         smtpPass = <password>
>>
>>     ----------------------
>>     [3] Existing (passing) case
>>     phili@Philip-Win10 MINGW64 /c/git-sdk-64/usr/src/git
>>     (die_preserve_ggg)
>>     $ git send-email --identity=TalkTalk   --to="Philip Oakley
>>     <philipoakley@iee.email>" --smtp-debug=1  0000*.patch
>>     0000-cover-letter.patch
>>     Net::SMTP>>> Net::SMTP(3.13)
>>     Net::SMTP>>>   Net::Cmd(3.13)
>>     Net::SMTP>>>     Exporter(5.76)
>>     Net::SMTP>>>   IO::Socket::IP(0.41)
>>     Net::SMTP>>>     IO::Socket(1.46)
>>     Net::SMTP>>>       IO::Handle(1.46)
>>     Net::SMTP=GLOB(0x800c16240)<<< 220 cm4nec smtp.talktalk.net
>>     <http://smtp.talktalk.net> ESMTP server
>>     ready
>>     Net::SMTP=GLOB(0x800c16240)>>> EHLO localhost.localdomain
>>     Net::SMTP=GLOB(0x800c16240)<<< 250-cm4nec hello [84.13.159.41],
>>     pleased
>>     to meet you
>>     Net::SMTP=GLOB(0x800c16240)<<< 250-HELP
>>     Net::SMTP=GLOB(0x800c16240)<<< 250-SIZE 30000000
>>     Net::SMTP=GLOB(0x800c16240)<<< 250-ENHANCEDSTATUSCODES
>>     Net::SMTP=GLOB(0x800c16240)<<< 250-8BITMIME
>>     Net::SMTP=GLOB(0x800c16240)<<< 250 OK
>>     Net::SMTP=GLOB(0x800c16240)>>> MAIL FROM:<philipoakley@iee.email>
>>     Net::SMTP=GLOB(0x800c16240)<<< 250 2.1.0 <philipoakley@iee.email>
>>     sender ok
>>     Net::SMTP=GLOB(0x800c16240)>>> RCPT TO:<philipoakley@iee.email>
>>     Net::SMTP=GLOB(0x800c16240)<<< 250 2.1.5 <philipoakley@iee.email>
>>     recipient ok
>>     Net::SMTP=GLOB(0x800c16240)>>> DATA
>>     Net::SMTP=GLOB(0x800c16240)<<< 354 OK
>>     Net::SMTP=GLOB(0x800c16240)>>> From: Philip Oakley
>>     <philipoakley@iee.email>
>>     Net::SMTP=GLOB(0x800c16240)>>> To: Philip Oakley
>>     <philipoakley@iee.email>
>>     Net::SMTP=GLOB(0x800c16240)>>> Subject: [PATCH 0/1] *** Test Names ***
>>     Net::SMTP=GLOB(0x800c16240)>>> Date: Sat, 16 Apr 2022 09:54:00 +0100
>>     Net::SMTP=GLOB(0x800c16240)>>> Message-Id:
>>     <20220416085400.277-1-philipoakley@iee.email>
>>     Net::SMTP=GLOB(0x800c16240)>>> X-Mailer: git-send-email
>>     2.36.0.rc0.windows.1
>>     Net::SMTP=GLOB(0x800c16240)>>> MIME-Version: 1.0
>>     Net::SMTP=GLOB(0x800c16240)>>> Content-Transfer-Encoding: 8bit
>>     Net::SMTP=GLOB(0x800c16240)>>> *** Test BLURB  ***
>>     [...]
>>     Net::SMTP=GLOB(0x800c16240)>>> 2.36.0.rc0.windows.1
>>     Net::SMTP=GLOB(0x800c16240)>>> .
>>     Net::SMTP=GLOB(0x800c16240)<<< 250 2.0.0 feC1ntahZW5NofeC1ntcj4 mail
>>     accepted for delivery
>>     OK. Log says:
>>     Server: smtp.talktalk.net <http://smtp.talktalk.net>
>>     MAIL FROM:<philipoakley@iee.email>
>>     RCPT TO:<philipoakley@iee.email>
>>     From: Philip Oakley <philipoakley@iee.email>
>>     To: Philip Oakley <philipoakley@iee.email>
>>     Subject: [PATCH 0/1] *** Test Names ***
>>     Date: Sat, 16 Apr 2022 09:54:00 +0100
>>     Message-Id: <20220416085400.277-1-philipoakley@iee.email>
>>     X-Mailer: git-send-email 2.36.0.rc0.windows.1
>>     MIME-Version: 1.0
>>     Content-Transfer-Encoding: 8bit
>>
>>     Result: 250
>>     Net::SMTP=GLOB(0x800c16240)>>> QUIT
>>     Net::SMTP=GLOB(0x800c16240)<<< 221 2.0.0 cm4nec smtp.talktalk.net
>>     <http://smtp.talktalk.net>
>>     closing connection
>>
>>     phili@Philip-Win10 MINGW64 /c/git-sdk-64/usr/src/git
>>     (die_preserve_ggg)
>>
>>     ---
>>     [4]
>>     [sendemail "TalkTalk"]
>>         chainreplyto = false
>>         from = Philip Oakley <philipoakley@iee.email>
>>         suppressfrom = true
>>         smtpServer = smtp.talktalk.net <http://smtp.talktalk.net>
>>         smtpServerPort = 25
>>
>>     [5] Thunderbird (IMAP) Server Settings (gui)
>>     ServerName: imap.hosts.co.uk <http://imap.hosts.co.uk>
>>     ServerPort: 993
>>     UserName: iee.email
>>     ConnectionSecurity: SSL/TLS    [None|StartTLS|Ssl/tls]
>>     AuthMethod: NormalPass     
>>     [Normal|Encrypted|Kerebos/Gssapi|NTLM|TLScert|Oath2]
>>     --
>>     Thunderbird Outgoing SMPTP Server
>>     smtp.hosts.co.uk <http://smtp.hosts.co.uk>
>>     465
>>     SSL/TLS
>>     NormalPassword
>>     iee.email
>>
>>     [6] Git Build details
>>     phili@Philip-Win10 MINGW64 /c/git-sdk-64/usr/src/git
>>     $ git --version --build-options
>>     git version 2.36.0.rc0.windows.1
>>     cpu: x86_64
>>     built from commit: c61dcf9cfa725959a79a3fb61d63bc05cc13ac7a
>>     sizeof-long: 4
>>     sizeof-size_t: 8
>>     shell-path: /bin/sh
>>     feature: fsmonitor--daemon
>>
>>     phili@Philip-Win10 MINGW64 /c/git-sdk-64/usr/src/git
>>     $ cat /etc/install-options.txt
>>     Editor Option: Notepad++
>>     Custom Editor Path:
>>     Default Branch Option: main
>>     Path Option: Cmd
>>     SSH Option: OpenSSH
>>     Tortoise Option: false
>>     CURL Option: OpenSSL
>>     CRLF Option: CRLFAlways
>>     Bash Terminal Option: MinTTY
>>     Git Pull Behavior Option: Merge
>>     Use Credential Manager: Enabled
>>     Performance Tweaks FSCache: Enabled
>>     Enable Symlinks: Disabled
>>     Enable Pseudo Console Support: Disabled
>>     Enable FSMonitor: Disabled
>>
>>     [7] sendemail.identity now comes straight after the new safe.directory
>>     entry - serendipity ..
>>
>>     [8] Names domain smtp advice
>>     https://www.names.co.uk/support/articles/sending-emails-via-alternate-smtp-ports/
>>     [Use SSL/465]
>>
>>

-- Philip

Previous: Philip Oakley
Message 3 of 3 in “Setting up `send-email` for SSL, and then using GCM (Git Credential Manager)”
  1. Philip OakleyApr 16, 2022
  2. Philip OakleyApr 16, 2022
  3. Philip OakleyApr 30, 2022

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.