ActionMailer Layout on HTML version not Plain Text

I’m sending plain text and html emails by having multiple files for each
email I send. For example, for my registration email I have a
registration.text.plain.erb file and a registration.text.html.erb file.
I want to use a layout for the html version of my emails. In my mailer
I put:

class AccountsMailer < ActionMailer::Base
layout ‘email’


Unfortunately rails seems to look for views/layouts/email.html.erb and
uses that layout for both my HTML and plain text emails. When I name
the file email.text.html.erb rails complains:

Missing layout layouts/email.erb …

How do I set up action mailer so that it uses a layout only for the html
version of emails?


Is there really no way to do this? This pretty much makes actionmailer
layouts useless if you are sending html emails with plain text

Did you ever find an answer to this? I have the exact same problem.

claims you can use different content types (plain/html) but it doesn’t
work for me

On Mar 10, 11:25 am, Raymond O’Connor <rails-mailing-l…@andreas-


I just posted the exact same issue here before I saw this thread. It
doesn’t work for me on Rails 2.2.2.

I was really excited to see layouts in ActionMailer, but this is
frustrating. sigh


(I’m poking around in the ActionMailer code to see if there is
anything I can find)

BTW, looks like this has been a known bug for a little while:

(since January at least).


Hopefully someone will fix it. If I knew the internals of Rails
better, I’d give it a go myself.


Woo hoo! Fix discovered!

Whew! I wasted 4 hours last night trying to monkeypatch ActionMailer
but I was futzing around in the wrong places.

I added Surendra’s suggestion as a monkeypatch and it works great!

Ok, on to other stuff…


This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs