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

Re: [PATCH] Implement sending mails over TLS in git-send-email.

From
Baz <brian.ewins@gmail.com>
Date
Oct 31, 2007, 23:59 UTC
Message-ID
<2faad3050710311659s10cab8fbj45bac505b22bb0c2@mail.gmail.com>
In-Reply-To
<981e6de60710311504v666943beve3b87c6a713fb18c@mail.gmail.com>
On 31/10/2007, Simon Sasburg <simon.sasburg@gmail.com> wrote:
Show 14 quoted lines
> > In other words, this patch should be entirely unnecessary if you have
> > Authen::SASL installed - could you try this? (I've checked for myself,
> > git-send-email sends me mail fine via gmail without this patch)
>
> Well, it fails here, maybe maybe you can show me exactly what you did
> (configuration/parameters etc)?
>
> This is what i do now:
> > git-send-email testfile.patch -to simon.sasburg@gmail.com --chain-reply-to --smtp-server smtp.gmail.com --smtp-user simon.sasburg --smtp-pass secret --smtp-ssl --smtp-server-port 587
> and it fails, while the same line using --smtp-tls instead of
> --smtp-ssl with my patch applied works.
>
> What am i missing?
>

ok I'm going to downgrade what I said to 'it works fine with gmail' - it just doesnt do starttls, your code does.

git-send-email --from 'brian.ewins@gmail.com' --to 'brian.ewins@gmail.com' --smtp-server smtp.gmail.com --smtp-user 'brian.ewins@gmail.com' --smtp-pass 'secret' --smtp-ssl 0001-the-patch-goes-here

That's using SSL on port 465, not TLS. Did this not work for you? I thought Net::SMTP passed its constructor options to IO::Socket, but no. An alternate way of getting starttls to work, without using Net::SMTP::TLS, is this:

#connect with Net::SMTP - not ::SSL or the connect will fail
$smtp = Net::SMTP->new('smtp.gmail.com',
                                 Port => 587,
                                 Debug => 1) or die "Could not connect
to server\n";
#issue the starttls command, assuming user asked for this
$smtp->command('STARTTLS');
$smtp->response();
#if server says 220, then go ahead and convert the socket. Bless as
Net::SMTP::SSL
# - necessary to inherit both IO::Socket::SSL and Net::SMTP
#start_SSL has been renamed, twice. Nice stable api :)
#extra args for checking server cert etc can be passed to start_SSL.
$smtp->code() == 220 and $smtp = Net::SMTP::SSL->start_SSL($smtp) or
die "STARTTLS failed! ".$smtp->message;
# say hello again to get server features (including auth)
$smtp->hello();
# now continue as before, with $smtp->auth()...
Previous: Simon Sasburg
Message 4 of 4 in “Implement sending mails over TLS in git-send-email.”
  1. Implement sending mails over TLS in git-send-email.Simon Sasburg, Oct 31, 2007
  2. BazOct 31, 2007
  3. Simon SasburgOct 31, 2007
  4. BazOct 31, 2007

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.