Email preview in production in rails 4

Hello,

I am using rails 4.1.1 and ActionMailer::Preview. In development environment everything is working excellent.

But in production environment the preview routes are not accessible. I store the previews in test/mailers/previews/ Is is possible to enable them for production?

Thanks!

Did you ever find a solution? I’m looking to do the same thing.

Hi,

I have a clue, but I haven’t tested it yet.

Try to add the routes in your routes.rb file manually.

If you have a chance to test this, please, write a line about the results.

Thanks!

Did u get the solution for this issue.

Hi,

I have a clue, but I haven’t tested it yet.

Try to add the routes in your routes.rb file manually.

If you have a chance to test this, please, write a line about the results.

Thanks!

You should not really do this as the whole point of the production environment is to be live and sending mails

The content should not be different to your test or development environment so I am not sure what issue you think you are having

However if you want to do this, then I would suggest something like the mailcatcher gem and temporarily reset your production SMTP settings to use that, however as I said above there should be no need to do this assuming you have tested your app previously

Obviously if you reset your SMTP settings to use mailcatcher then no one will receive any live email from your app

It’s been a year so perhaps your imagination or experience has expanded, but in case not how about this perfectly legitimate use case: the client who contracted the development of the app would like to be able to view the various mails that the app sends.

This is how I did it. For those having trouble imagining the use case, it was so the client who pays for the app could easily review the many mails the app sends.

##production.rb

MyApp::Application.configure do

config.action_mailer.preview_path ||= defined?(Rails.root) ? “#{Rails.root}/spec/mailer_previews” : nil

config.autoload_paths += [config.action_mailer.preview_path]

routes.append do

get ‘/rails/mailers’ => “rails/mailers#index”

get ‘/rails/mailers/*path’ => “rails/mailers#preview”

end

end

class ::Rails::MailersController

before_filter :authenticate_admin!

def local_request?

true

end

private

def authenticate_admin!

end

end