From 367a969471b0f8ae940410f97beae4e300d0b81d Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Sun, 22 Feb 2009 00:44:25 +0000 Subject: Bug 467920: Remove multiple CRs in a row from the email template and make sure all email lines end in CRLF. Patch By Max Kanat-Alexander r=glob, a=mkanat --- Bugzilla/Mailer.pm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Bugzilla/Mailer.pm b/Bugzilla/Mailer.pm index d3810b72b..610523b8a 100644 --- a/Bugzilla/Mailer.pm +++ b/Bugzilla/Mailer.pm @@ -62,7 +62,20 @@ sub MessageToMTA { return; } - my $email = ref($msg) ? $msg : Email::MIME->new($msg); + my $email; + if (ref $msg) { + $email = $msg; + } + else { + # RFC 2822 requires us to have CRLF for our line endings and + # Email::MIME doesn't do this for us. We use \015 (CR) and \012 (LF) + # directly because Perl translates "\n" depending on what platform + # you're running on. See http://perldoc.perl.org/perlport.html#Newlines + # We check for multiple CRs because of this Template-Toolkit bug: + # https://rt.cpan.org/Ticket/Display.html?id=43345 + $msg =~ s/(?:\015+)?\012/\015\012/msg; + $email = new Email::MIME($msg); + } # We add this header to uniquely identify all email that we # send as coming from this Bugzilla installation. -- cgit v1.2.3-24-g4f1b