Skip to contentSkip to conversation

Problem with send-email

DISCUSSION Timur Tabi 2 participants 3 messages Jun 15, 2016

lore
Share & tools
lore

Timur Tabi

author
#0 lore raw

Does anyone actually use git-send-email? It's been so broken for me for months that I can't help but think that.

Problem #1:

I don't know Perl, but I think there's something wrong with this code:

if (!defined $from) {
	$from = $author || $committer;
        print "$from\n";
	do {
		$_ = $term->readline("Who should the emails appear to be from? ",
			$from);
	} while (!defined $_);

	$from = $_;
	print "Emails will be sent from: ", $from, "\n";
	$prompting++;
}

I don't think the call to readline() is working. Specifically, the last parameter, $from, is being ignored. When I call git-send-email without specifying a --from parameter, this code is executed. But this is what I see:

Timur Tabi <[email protected]>
Who should the emails appear to be from?
Emails will be sent from:

This happens when I press ENTER at the "Who should the emails appear to be from?" prompt. I'm expecting it to assign the default value, which is displayed right above it. But instead, $from is erased, and so my email doesn't have a From: line.

Problem #2:

I cannot use send-email to send a patch to anyone but myself. If I do this:

git-send-email --from [email protected] --to [email protected] --smtp-server remotesmtp.freescale.net patchfile

Everything works. However, if I do this:

git-send-email --from [email protected] --to --smtp-server remotesmtp.freescale.net patchfile

I get this:

(mbox) Adding cc: Timur Tabi <[email protected]> from line 'From: Timur Tabi <[email protected]>' (sob) Adding cc: Timur Tabi <[email protected]> from line 'Signed-off-by: Timur Tabi <[email protected]>' 5.0.0 <Timur Tabi <[email protected]>... Unbalanced '<'

I think that last line is a response from the SMTP server. My guess is that there's something wrong with this line:

		print $sm "$header\n$message";

Maybe my SMTP server sees the "From: Timur Tabi <[email protected]>" that's at the top of $message and gets confused?

Signature · 2 lines
Timur Tabi
Linux Kernel Developer @ Freescale
#1 lore raw
Quoted 5 lines · Timur Tabi

Everything works.  However, if I do this:

git-send-email --from [email protected] --to  \
--smtp-server remotesmtp.freescale.net patchfile

What do you expect when you specify _empty_ To: header?

I use git-send-email from time to time; I always specify From:, either entering it when prompted, or using --from parameter. The fact that it didn't fill default value from committer/author core.author+core.email is I guess a bug...

Signature · 3 lines
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
author
#2 lore raw
Quoted 9 lines · Jakub Narebski
Quoted 5 lines · Timur Tabi

Everything works. However, if I do this:

git-send-email --from [email protected] --to \
--smtp-server remotesmtp.freescale.net patchfile

What do you expect when you specify _empty_ To: header?

Sorry, that was a bad cut-and-paste. I don't know what happened. That line is supposed to read:

git-send-email --from [email protected] --to [email protected] --smtp-server remotesmtp.freescale.net patchfile

The error message I get is the same:

(mbox) Adding cc: Timur Tabi <[email protected]> from line 'From: Timur Tabi <[email protected]>' (sob) Adding cc: Timur Tabi <[email protected]> from line 'Signed-off-by: Timur Tabi <[email protected]> '
5.0.0 <Timur Tabi <[email protected]>... Unbalanced '<'

I do have some news. This problem goes away if I don't specify the --smtp-server parameter.

Quoted 4 lines

I use git-send-email from time to time; I always specify From:, either entering it when prompted, or using --from parameter. The fact that it didn't fill default value from committer/author
core.author+core.email is I guess a bug...

Like I said, I think the bug is in the call to readline(). Like I said, I don't know Perl, but from the documentation I have read, I don't think readline() takes two parameters.

    do {
        $_ = $term->readline("Who should the emails appear to be from? ",
            $from);
    } while (!defined $_);

    $from = $_;

$from does contain the correct value when readline() is called. The problem is that $_ contains nothing, which causes $from to be erased.

Signature · 2 lines
Timur Tabi
Linux Kernel Developer @ Freescale