From bde3df2bec99103eeb91c4caaf0483aacadccd92 Mon Sep 17 00:00:00 2001 From: Jamis Buck Date: Wed, 6 Jul 2005 09:53:34 +0000 Subject: Correctly normalize newlines in outgoing emails before encoding the body [John Long] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1732 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionmailer/lib/action_mailer/base.rb | 5 +++-- actionmailer/lib/action_mailer/part.rb | 3 ++- actionmailer/lib/action_mailer/utils.rb | 8 ++++++++ actionmailer/lib/action_mailer/vendor/tmail/mail.rb | 6 +----- 4 files changed, 14 insertions(+), 8 deletions(-) create mode 100644 actionmailer/lib/action_mailer/utils.rb (limited to 'actionmailer/lib') diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb index 61bc74a81c..89c202fd01 100644 --- a/actionmailer/lib/action_mailer/base.rb +++ b/actionmailer/lib/action_mailer/base.rb @@ -1,6 +1,7 @@ require 'action_mailer/adv_attr_accessor' require 'action_mailer/part' require 'action_mailer/part_container' +require 'action_mailer/utils' require 'tmail/net' module ActionMailer #:nodoc: @@ -293,11 +294,11 @@ module ActionMailer #:nodoc: if @parts.empty? m.set_content_type content_type, nil, { "charset" => charset } - m.body = body + m.body = Utils.normalize_new_lines(body) else if String === body part = TMail::Mail.new - part.body = body + part.body = Utils.normalize_new_lines(body) part.set_content_type content_type, nil, { "charset" => charset } part.set_content_disposition "inline" m.parts << part diff --git a/actionmailer/lib/action_mailer/part.rb b/actionmailer/lib/action_mailer/part.rb index 60cbe0d3fe..d4b8e3b9d9 100644 --- a/actionmailer/lib/action_mailer/part.rb +++ b/actionmailer/lib/action_mailer/part.rb @@ -1,5 +1,6 @@ require 'action_mailer/adv_attr_accessor' require 'action_mailer/part_container' +require 'action_mailer/utils' module ActionMailer class Part #:nodoc: @@ -29,7 +30,7 @@ module ActionMailer when "base64" then part.body = TMail::Base64.folding_encode(body) when "quoted-printable" - part.body = [body].pack("M*") + part.body = [Utils.normalize_new_lines(body)].pack("M*") else part.body = body end diff --git a/actionmailer/lib/action_mailer/utils.rb b/actionmailer/lib/action_mailer/utils.rb new file mode 100644 index 0000000000..552f695a92 --- /dev/null +++ b/actionmailer/lib/action_mailer/utils.rb @@ -0,0 +1,8 @@ +module ActionMailer + module Utils #:nodoc: + def normalize_new_lines(text) + text.to_s.gsub(/\r\n?/, "\n") + end + module_function :normalize_new_lines + end +end diff --git a/actionmailer/lib/action_mailer/vendor/tmail/mail.rb b/actionmailer/lib/action_mailer/vendor/tmail/mail.rb index f4a42df19b..9111a65042 100755 --- a/actionmailer/lib/action_mailer/vendor/tmail/mail.rb +++ b/actionmailer/lib/action_mailer/vendor/tmail/mail.rb @@ -335,13 +335,9 @@ module TMail } end - def normalize_line_endings(text) - text.to_s.gsub(/\r\n?/, "\n") - end - def body=( str ) parse_body - @body_port.wopen {|f| f.write normalize_line_endings(str) } + @body_port.wopen {|f| f.write str } str end -- cgit v1.2.3