diff options
author | Andrew White <andyw@pixeltrix.co.uk> | 2015-05-04 08:02:36 +0100 |
---|---|---|
committer | Andrew White <andyw@pixeltrix.co.uk> | 2015-05-04 10:54:50 +0100 |
commit | 350d272d6cd6fbbb127133773c79c3c17e4216f0 (patch) | |
tree | b8ef29d6c225b46bde28a16cebc55760c42efce5 /railties/lib | |
parent | 4261aa575a6f5f12486a19fe11464e614314e296 (diff) | |
download | rails-350d272d6cd6fbbb127133773c79c3c17e4216f0.tar.gz rails-350d272d6cd6fbbb127133773c79c3c17e4216f0.tar.bz2 rails-350d272d6cd6fbbb127133773c79c3c17e4216f0.zip |
Fix mailer previews with attachments
Use the mail gem's own API to locate the correct part.
Fixes #14435.
Diffstat (limited to 'railties/lib')
-rw-r--r-- | railties/lib/rails/mailers_controller.rb | 14 | ||||
-rw-r--r-- | railties/lib/rails/templates/rails/mailers/email.html.erb | 2 |
2 files changed, 9 insertions, 7 deletions
diff --git a/railties/lib/rails/mailers_controller.rb b/railties/lib/rails/mailers_controller.rb index cd1c097eb6..41422a656c 100644 --- a/railties/lib/rails/mailers_controller.rb +++ b/railties/lib/rails/mailers_controller.rb @@ -54,18 +54,20 @@ class Rails::MailersController < Rails::ApplicationController # :nodoc: end def find_preferred_part(*formats) - if @email.multipart? - formats.each do |format| - return find_part(format) if @email.parts.any?{ |p| p.mime_type == format } + formats.each do |format| + if part = @email.find_first_mime_type(format) + return part end - else + end + + if formats.any?{ |f| @email.mime_type == f } @email end end def find_part(format) - if @email.multipart? - @email.parts.find{ |p| p.mime_type == format } + if part = @email.find_first_mime_type(format) + part elsif @email.mime_type == format @email end diff --git a/railties/lib/rails/templates/rails/mailers/email.html.erb b/railties/lib/rails/templates/rails/mailers/email.html.erb index afca6368d5..a5f105de8d 100644 --- a/railties/lib/rails/templates/rails/mailers/email.html.erb +++ b/railties/lib/rails/templates/rails/mailers/email.html.erb @@ -103,7 +103,7 @@ </dl> </header> -<% if @part.mime_type %> +<% if @part && @part.mime_type %> <iframe seamless name="messageBody" src="?part=<%= Rack::Utils.escape(@part.mime_type) %>"></iframe> <% else %> <p> |