Re: [PATCH] git-send-email.perl: Fold long header lines to 78 chars

5 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH] git-send-email.perl: Fold long header lines to 78 chars

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:47:29

Joe Perches [off-list ref] writes:
quoted hunk
Some MTAs reject or filter long header lines which can
be generated if the cc list is only a few entries.

Fold long header lines to 78 chars to be more rfc compliant.

Signed-off-by: Joe Perches <joe@perches.com>
diff --git a/git-send-email.perl b/git-send-email.perl
index dd821f7..cb8b48b 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -835,10 +870,10 @@ sub send_message
 	    $gitversion = Git::version();
 	}
 
-	my $cc = join(", ", unique_email_list(@cc));
+	@cc = unique_email_list(@cc);
 	my $ccline = "";
-	if ($cc ne '') {
-		$ccline = "\nCc: $cc";
+	if (@cc gt 0) {
"gt"?  I think you meant (@cc > 0) but you can also say "if (@cc) {" which
would most clearly convey what you want to say..
quoted hunk
+		$ccline = fold_header("\nCc: ", ", ", @cc);
 	}
 	my $sanitized_sender = sanitize_address($sender);
 	make_message_id() unless defined($message_id);
@@ -976,7 +1011,7 @@ X-Mailer: git-send-email $gitversion
 		if ($smtp_server !~ m#^/#) {
 			print "Server: $smtp_server\n";
 			print "MAIL FROM:<$raw_from>\n";
-			print "RCPT TO:".join(',',(map { "<$_>" } @recipients))."\n";
+			print fold_header("RCPT TO:", ",", map { "<$_>" } @recipients)."\n";
I do not think this hunk is correct.

Shouldn't we be rather repeating "RCPT TO: " for each recipient, as
RFC2821 4.1.1.3 says (this is an issue with the original code)?  I do not
think SMTP's "RCPT TO" command has the notion of continuation line used
for the payload (i.e. RFC 2822 Internet Message Format), and folding the
line is a new bug this patch introduces.
 		} else {
 			print "Sendmail: $smtp_server ".join(' ',@sendmail_parameters)."\n";
 		}

Re: [PATCH] git-send-email.perl: Fold long header lines to 78 chars

From: Joe Perches <joe@perches.com>
Date: 2016-06-15 22:47:29

On Wed, 2009-10-07 at 22:02 -0700, Junio C Hamano wrote:
Joe Perches [off-list ref] writes:
quoted
Some MTAs reject or filter long header lines which can
be generated if the cc list is only a few entries.
Fold long header lines to 78 chars to be more rfc compliant.

-	my $cc = join(", ", unique_email_list(@cc));
It's probably better/simpler to not use fold_header and
just do the same join as "my $to"

	my $cc = join(",\n\t", unique_email_list(@cc));
quoted
 		if ($smtp_server !~ m#^/#) {
 			print "Server: $smtp_server\n";
 			print "MAIL FROM:<$raw_from>\n";
-			print "RCPT TO:".join(',',(map { "<$_>" } @recipients))."\n";
+			print fold_header("RCPT TO:", ",", map { "<$_>" } @recipients)."\n";
I do not think this hunk is correct.
Shouldn't we be rather repeating "RCPT TO: " for each recipient, as
RFC2821 4.1.1.3 says (this is an issue with the original code)?
Looks like you're right.

Want a new patch or will you fix both issues?

I suggest using the same join as "To:" for "Cc:" and
multiple single line "RCPT TO:"s.

Re: [PATCH] git-send-email.perl: Fold long header lines to 78 chars

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:47:29

Joe Perches [off-list ref] writes:
quoted
I do not think this hunk is correct.
Shouldn't we be rather repeating "RCPT TO: " for each recipient, as
RFC2821 4.1.1.3 says (this is an issue with the original code)?
Looks like you're right.

Want a new patch or will you fix both issues?

I suggest using the same join as "To:" for "Cc:" and
multiple single line "RCPT TO:"s.
Sure.  Please make it so.

[PATCH v2] git-send-email.perl: fold multiple entry "Cc:" and multiple single line "RCPT TO:"s

From: Joe Perches <joe@perches.com>
Date: 2016-06-15 22:47:29

Some MTAs reject Cc: lines longer than 78 chars.
Avoid this by using the same join as "To:" ",\n\t"
so each subsequent Cc entry is on a new line.

RCPT TO: should have a single entry per line.
see: http://www.ietf.org/rfc/rfc2821.txt

Signed-off-by: Joe Perches <joe@perches.com>
diff --git a/git-send-email.perl b/git-send-email.perl
index dd821f7..ce81425 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -835,7 +835,7 @@ sub send_message
 	    $gitversion = Git::version();
 	}
 
-	my $cc = join(", ", unique_email_list(@cc));
+	my $cc = join(",\n\t", unique_email_list(@cc));
 	my $ccline = "";
 	if ($cc ne '') {
 		$ccline = "\nCc: $cc";
@@ -976,7 +976,9 @@ X-Mailer: git-send-email $gitversion
 		if ($smtp_server !~ m#^/#) {
 			print "Server: $smtp_server\n";
 			print "MAIL FROM:<$raw_from>\n";
-			print "RCPT TO:".join(',',(map { "<$_>" } @recipients))."\n";
+			foreach my $entry (@recipients) {
+			    print "RCPT TO:<$entry>\n";
+			}
 		} else {
 			print "Sendmail: $smtp_server ".join(' ',@sendmail_parameters)."\n";
 		}

Re: [PATCH v2] git-send-email.perl: fold multiple entry "Cc:" and multiple single line "RCPT TO:"s

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:47:30

This breaks t9001 since it expects an old (and probably incorrect) RCPT TO:
lines.  I fixed them up.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help