Re: [PATCH] make git-send-email.perl handle email addresses with no names when Email::Valid is present
From: Uwe Kleine-König <hidden>
Date: 2016-06-15 22:43:28
Subsystem:
the rest · Maintainer:
Linus Torvalds
Hello, Greg KH wrote:
When using git-send-email.perl on a changeset that has: Cc: [off-list ref] in the body of the description, and the Email::Valid perl module is installed on the system, the email address will be deemed "invalid" for some reason (Email::Valid isn't smart enough to handle this?) and complain and not send the address the email.
The reason is probably that it is indeed invalid. From rfc822: mailbox = addr-spec / phrase route-addr addr-spec = local-part "@" domain phrase = 1*word word = atom / quoted-string atom = 1*<any CHAR except specials, SPACE and CTLs> quoted-string = <"> *(qtext/quoted-pair) <"> route-addr = "<" [route] addr-spec ">" ... where 1* means "at least one of". That is, either you must not use <...> or you need a non-empty phrase. Actually this grammar looks wrong, because as I read it it would not allow spaces between words in phrase. But that's another issue. BTW: Outlook depends on this, because if you use Cc: [off-list ref], it doesn't show anything in the Cc: line---at least in the default configuration. So I suggest the following: ---- >8 ---- send-email: rfc822 forbids using <address@domain> without a non-empty "phrase" Email::Valid does respect this considering such a mailbox specification invalid. b06c6bc831cbb9e9eb82fd3ffd5a2b674cd940d0 addressed the issue, but only if Email::Valid is available. Signed-off-by: Uwe Kleine-König <redacted> --- git-send-email.perl | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/git-send-email.perl b/git-send-email.perl
index 39e433b..a02ab96 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl@@ -408,8 +408,8 @@ sub extract_valid_address { # check for a local address: return $address if ($address =~ /^($local_part_regexp)$/); + $address =~ s/^\s*<(.*)>\s*$/$1/; if ($have_email_valid) { - $address =~ s/^\s*<(.*)>\s*$/$1/; return scalar Email::Valid->address($address); } else { # less robust/correct than the monster regexp in Email::Valid,
--
1.5.3.rc3.943.g14c81
--
Uwe Kleine-König
If a lawyer and an IRS agent were both drowning, and you could only save
one of them, would you go to lunch or read the paper?